Exemplo n.º 1
0
        private static PSParameterValueBase GetAssignmentParameters(KeyValuePair <string, ParameterValueBase> parameterKvp)
        {
            PSParameterValueBase parameter = null;

            if (parameterKvp.Value != null && parameterKvp.Value is ParameterValue)
            {
                // Need to cast as ParameterValue since assignment.Parameters value type is ParameterValueBase.
                var parameterValue = (ParameterValue)parameterKvp.Value;

                parameter = new PSParameterValue {
                    Description = parameterValue.Description, Value = parameterValue.Value
                };
            }
            else if (parameterKvp.Value != null && parameterKvp.Value is SecretReferenceParameterValue)
            {
                var parameterValue = (SecretReferenceParameterValue)parameterKvp.Value;

                var secretReference = new PSSecretValueReference
                {
                    KeyVault = new PSKeyVaultReference {
                        Id = parameterValue.Reference.KeyVault.Id
                    },
                    SecretName    = parameterValue.Reference.SecretName,
                    SecretVersion = parameterValue.Reference.SecretVersion
                };

                parameter = new PSSecretReferenceParameterValue {
                    Reference = secretReference, Description = parameterValue.Description
                };
            }

            return(parameter);
        }
Exemplo n.º 2
0
        internal static PSTemplateArtifact FromArtifactModel(TemplateArtifact artifact, string scope)
        {
            var psArtifact = new PSTemplateArtifact
            {
                Id            = artifact.Id,
                Type          = artifact.Type,
                Name          = artifact.Name,
                DisplayName   = artifact.DisplayName,
                Description   = artifact.Description,
                DependsOn     = new List <string>(),
                Template      = artifact.Template,
                Parameters    = new Dictionary <string, PSParameterValue>(),
                ResourceGroup = artifact.ResourceGroup
            };

            foreach (var item in artifact.Parameters)
            {
                PSParameterValue parameter = GetArtifactParameters(item);
                psArtifact.Parameters.Add(item.Key, parameter);
            }

            psArtifact.DependsOn = artifact.DependsOn?.ToList();

            return(psArtifact);
        }
        private static PSParameterValue GetArtifactParameters(KeyValuePair <string, ParameterValue> parameterKvp)
        {
            PSParameterValue parameter = null;

            if (parameterKvp.Value?.Value != null)
            {
                var parameterValue = parameterKvp.Value;
                parameter = new PSParameterValue {
                    Value = parameterValue.Value
                };
            }
            else if (parameterKvp.Value?.Reference != null)
            {
                var parameterValue  = parameterKvp.Value;
                var secretReference = new PSSecretValueReference
                {
                    KeyVault = new PSKeyVaultReference {
                        Id = parameterValue.Reference.KeyVault.Id
                    },
                    SecretName    = parameterValue.Reference.SecretName,
                    SecretVersion = parameterValue.Reference.SecretVersion
                };

                parameter = new PSParameterValue {
                    Reference = secretReference
                };
            }

            return(parameter);
        }
Exemplo n.º 4
0
        private static PSParameterValue GetArtifactParameters(KeyValuePair <string, ParameterValue> parameterKvp)
        {
            PSParameterValue parameter = null;

            if (parameterKvp.Value != null)
            {
                var parameterValue = parameterKvp.Value;

                parameter = new PSParameterValue {
                    Value = parameterValue.Value
                };
            }

            return(parameter);
        }
Exemplo n.º 5
0
        private static PSParameterValueBase GetArtifactParameters(KeyValuePair <string, ParameterValueBase> parameterKvp)
        {
            PSParameterValueBase parameter = null;

            if (parameterKvp.Value != null && parameterKvp.Value is ParameterValue)
            {
                // Need to cast as ParameterValue since assignment.Parameters value type is ParameterValueBase.
                var parameterValue = (ParameterValue)parameterKvp.Value;

                parameter = new PSParameterValue {
                    Description = parameterValue.Description, Value = parameterValue.Value
                };
            }

            return(parameter);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Create a PSBluprintAssignment object from an Assignment model.
        /// </summary>
        /// <param name="assignment">Assignment object from which to create the PSBlueprintAssignment.</param>
        /// <returns>A new PSBlueprintAssignment object.</returns>
        internal static PSBlueprintAssignment FromAssignment(Assignment assignment)
        {
            var psAssignment = new PSBlueprintAssignment
            {
                Name     = assignment.Name,
                Id       = assignment.Id,
                Type     = assignment.Type,
                Location = assignment.Location,
                Scope    = assignment.Scope,
                Identity = new PSManagedServiceIdentity
                {
                    PrincipalId            = assignment.Identity.PrincipalId,
                    TenantId               = assignment.Identity.TenantId,
                    Type                   = assignment.Type,
                    UserAssignedIdentities = new Dictionary <string, PSUserAssignedIdentity>()
                },
                DisplayName       = assignment.DisplayName,
                Description       = assignment.Description,
                BlueprintId       = assignment.BlueprintId,
                ProvisioningState = PSAssignmentProvisioningState.Unknown,
                Status            = new PSAssignmentStatus(),
                Locks             = new PSAssignmentLockSettings
                {
                    Mode               = PSLockMode.None,
                    ExcludedActions    = new List <string>(),
                    ExcludedPrincipals = new List <string>()
                },
                Parameters     = new Dictionary <string, PSParameterValue>(),
                ResourceGroups = new Dictionary <string, PSResourceGroupValue>()
            };

            psAssignment.Status.TimeCreated = assignment.Status.TimeCreated;

            psAssignment.Status.LastModified = assignment.Status.LastModified;

            if (Enum.TryParse(assignment.ProvisioningState, true, out PSAssignmentProvisioningState state))
            {
                psAssignment.ProvisioningState = state;
            }
            else
            {
                psAssignment.ProvisioningState = PSAssignmentProvisioningState.Unknown;
            }

            if (Enum.TryParse(assignment.Locks.Mode, true, out PSLockMode lockMode))
            {
                psAssignment.Locks.Mode = lockMode;
            }
            else
            {
                psAssignment.Locks.Mode = PSLockMode.None;
            }

            if (assignment.Locks.ExcludedActions != null)
            {
                foreach (var item in assignment.Locks.ExcludedActions)
                {
                    psAssignment.Locks.ExcludedActions.Add(item);
                }
            }

            if (assignment.Locks.ExcludedPrincipals != null)
            {
                foreach (var item in assignment.Locks.ExcludedPrincipals)
                {
                    psAssignment.Locks.ExcludedPrincipals.Add(item);
                }
            }

            foreach (var item in assignment.Parameters)
            {
                PSParameterValue parameter = GetAssignmentParameters(item);
                psAssignment.Parameters.Add(item.Key, parameter);
            }

            foreach (var item in assignment.ResourceGroups)
            {
                psAssignment.ResourceGroups.Add(item.Key,
                                                new PSResourceGroupValue {
                    Name = item.Value.Name, Location = item.Value.Location
                });
            }

            if (assignment.Identity.UserAssignedIdentities != null)
            {
                foreach (var item in assignment.Identity.UserAssignedIdentities)
                {
                    psAssignment.Identity.UserAssignedIdentities.Add(item.Key,
                                                                     new PSUserAssignedIdentity {
                        ClientId = item.Value.ClientId, PrincipalId = item.Value.PrincipalId
                    });
                }
            }

            return(psAssignment);
        }