/// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource()
        {
            var policyassignmentObject = new PolicyAssignment
            {
                Name     = this.Name,
                Sku      = Sku?.ToDictionary(addValueLayer: false).ToJson().FromJson <PolicySku>(), // only store Sku if it was provided by user
                Identity = this.AssignIdentity.IsPresent ? new ResourceIdentity {
                    Type = ResourceIdentityType.SystemAssigned
                } : null,
                Location   = this.Location,
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName = this.DisplayName ?? null,
                    Description = this.Description ?? null,
                    Scope       = this.Scope,
                    NotScopes   = this.NotScope ?? null,
                    Metadata    = this.Metadata == null ? null : JObject.Parse(this.GetObjectFromParameter(this.Metadata).ToString()),
                    Parameters  = this.GetParameters()
                }
            };

            if (this.PolicyDefinition != null)
            {
                policyassignmentObject.Properties.PolicyDefinitionId = this.PolicyDefinition.Properties["policyDefinitionId"].Value.ToString();
            }
            else if (this.PolicySetDefinition != null)
            {
                policyassignmentObject.Properties.PolicyDefinitionId = this.PolicySetDefinition.Properties["policySetDefinitionId"].Value.ToString();
            }

            return(policyassignmentObject.ToJToken());
        }
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource()
        {
            var policyassignmentObject = new PolicyAssignment
            {
                Name     = this.Name,
                Identity = this.AssignIdentity.IsPresent ? new ResourceIdentity {
                    Type = ResourceIdentityType.SystemAssigned
                } : null,
                Location   = this.Location,
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName     = this.DisplayName ?? null,
                    Description     = this.Description ?? null,
                    Scope           = this.Scope,
                    NotScopes       = this.NotScope ?? null,
                    Metadata        = this.Metadata == null ? null : this.GetObjectFromParameter(this.Metadata, nameof(this.Metadata)),
                    EnforcementMode = EnforcementMode ?? PolicyAssignmentEnforcementMode.Default,
                    Parameters      = this.GetParameters(this.PolicyParameter, this.PolicyParameterObject)
                }
            };

            if (this.PolicyDefinition != null)
            {
                policyassignmentObject.Properties.PolicyDefinitionId = this.PolicyDefinition.Properties["policyDefinitionId"].Value.ToString();
            }
            else if (this.PolicySetDefinition != null)
            {
                policyassignmentObject.Properties.PolicyDefinitionId = this.PolicySetDefinition.Properties["policySetDefinitionId"].Value.ToString();
            }

            return(policyassignmentObject.ToJToken());
        }
Esempio n. 3
0
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource(string resourceId, string apiVersion)
        {
            var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource();

            var metaDataJson = string.IsNullOrEmpty(this.Metadata) ? resource.Properties["metadata"]?.ToString() : GetObjectFromParameter(this.Metadata).ToString();

            var policyAssignmentObject = new PolicyAssignment
            {
                Name     = this.Name ?? resource.Name,
                Identity = this.AssignIdentity.IsPresent ? new ResourceIdentity {
                    Type = ResourceIdentityType.SystemAssigned
                } : null,
                Location   = this.Location ?? resource.Location,
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName        = this.DisplayName ?? resource.Properties["displayName"]?.ToString(),
                    Description        = this.Description ?? resource.Properties["description"]?.ToString(),
                    Scope              = resource.Properties["scope"].ToString(),
                    NotScopes          = this.NotScope ?? resource.Properties["NotScopes"]?.ToString().Split(','),
                    PolicyDefinitionId = resource.Properties["policyDefinitionId"].ToString(),
                    Metadata           = string.IsNullOrEmpty(this.Metadata) ? null : JObject.Parse(metaDataJson),
                    Parameters         = (JObject)resource.Properties["parameters"]
                }
            };

            return(policyAssignmentObject.ToJToken());
        }
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource(string resourceId, string apiVersion)
        {
            var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource <PolicyAssignmentProperties>();

            // get incoming object properties if present
            JObject inputMetadata = null;

            if (this.InputObject != null)
            {
                var newProperties = this.InputObject.Properties.ToJToken();
                inputMetadata = newProperties["metadata"] as JObject;
            }

            var parameterMetadata = this.Metadata != null?this.GetObjectFromParameter(this.Metadata, nameof(this.Metadata)) : null;

            PolicyAssignmentEnforcementMode?inputMode = null;

            if (Enum.TryParse(this.InputObject?.Properties?.EnforcementMode?.ToString(), true, out PolicyAssignmentEnforcementMode tempMode1))
            {
                inputMode = tempMode1;
            }

            // Grab the non-compliance messages from the parameter or input object or existing resource
            var nonComplianceMessages = this.NonComplianceMessage?.Where(message => message != null).SelectArray(message => message.ToModel());

            if (nonComplianceMessages == null && this.InputObject?.Properties.NonComplianceMessages != null)
            {
                nonComplianceMessages = this.InputObject.Properties.NonComplianceMessages.Where(message => message != null).SelectArray(message => message.ToModel());
            }
            else if (nonComplianceMessages == null)
            {
                nonComplianceMessages = resource.Properties.NonComplianceMessages;
            }

            var policyAssignmentObject = new PolicyAssignment
            {
                Name     = this.Name ?? this.InputObject?.Name ?? resource.Name,
                Identity = this.AssignIdentity.IsPresent ? new ResourceIdentity {
                    Type = ResourceIdentityType.SystemAssigned
                } : null,
                Location   = this.Location ?? this.InputObject?.Location ?? resource.Location,
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName           = this.DisplayName ?? this.InputObject?.Properties?.DisplayName ?? resource.Properties.DisplayName,
                    Description           = this.Description ?? this.InputObject?.Properties?.Description ?? resource.Properties.Description,
                    Scope                 = resource.Properties.Scope,
                    NotScopes             = this.NotScope ?? this.InputObject?.Properties?.NotScopes ?? resource.Properties.NotScopes,
                    PolicyDefinitionId    = resource.Properties.PolicyDefinitionId,
                    Metadata              = parameterMetadata ?? inputMetadata ?? resource.Properties.Metadata,
                    EnforcementMode       = this.EnforcementMode ?? inputMode ?? resource.Properties.EnforcementMode,
                    NonComplianceMessages = nonComplianceMessages,
                    Parameters            =
                        this.GetParameters(this.PolicyParameter, this.PolicyParameterObject)
                        ?? this.InputObject?.Properties?.Parameters?.ToResourcePropertiesBody() as JObject
                        ?? resource.Properties.Parameters
                }
            };

            return(policyAssignmentObject.ToJToken());
        }
Esempio n. 5
0
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource(string resourceId, string apiVersion)
        {
            var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource();

            var policyAssignmentObject = new PolicyAssignment
            {
                Name = this.Name ?? ResourceIdUtility.GetResourceName(this.Id),
                Sku  = this.Sku != null
                    ? this.Sku.ToDictionary(addValueLayer : false).ToJson().FromJson <PolicySku>()
                    : (resource.Sku == null ? new PolicySku
                {
                    Name = "A0", Tier = "Free"
                }

                                                                                           : resource.Sku.ToJson().FromJson <PolicySku>()),
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName = this.DisplayName ?? (resource.Properties["displayName"] != null
                        ? resource.Properties["displayName"].ToString()
                        : null),
                    Description = this.Description ?? (resource.Properties["description"] != null
                        ? resource.Properties["description"].ToString()
                        : null),
                    Scope              = resource.Properties["scope"].ToString(),
                    NotScopes          = this.NotScope ?? (resource.Properties["NotScopes"] == null ? null : resource.Properties["NotScopes"].ToString().Split(',')),
                    PolicyDefinitionId = resource.Properties["policyDefinitionId"].ToString()
                }
            };

            return(policyAssignmentObject.ToJToken());
        }
Esempio n. 6
0
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource()
        {
            var policyassignmentObject = new PolicyAssignment
            {
                Name = this.Name,
                Sku  = this.Sku == null? new PolicySku {
                    Name = "A0", Tier = "Free"
                } : this.Sku.ToDictionary(addValueLayer: false).ToJson().FromJson <PolicySku>(),
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName = this.DisplayName ?? null,
                    Description = this.Description ?? null,
                    Scope       = this.Scope,
                    NotScopes   = this.NotScope ?? null,
                    Parameters  = this.GetParameters()
                }
            };

            if (this.PolicyDefinition != null)
            {
                policyassignmentObject.Properties.PolicyDefinitionId = this.PolicyDefinition.Properties["policyDefinitionId"].Value.ToString();
            }
            else if (this.PolicySetDefinition != null)
            {
                policyassignmentObject.Properties.PolicyDefinitionId = this.PolicySetDefinition.Properties["policySetDefinitionId"].Value.ToString();
            }

            return(policyassignmentObject.ToJToken());
        }
Esempio n. 7
0
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource(string resourceId, string apiVersion)
        {
            var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource();

            // get incoming object properties if present
            JObject inputMetadata = null;

            if (this.InputObject != null)
            {
                var newProperties = this.InputObject.Properties.ToJToken();
                inputMetadata = newProperties["metadata"] as JObject;
            }

            var parameterMetadata = this.Metadata != null?this.GetObjectFromParameter(this.Metadata, nameof(this.Metadata)) : null;

            PolicyAssignmentEnforcementMode?existingMode = null;

            if (Enum.TryParse(resource.Properties["enforcementMode"]?.ToString(), true, out PolicyAssignmentEnforcementMode tempMode))
            {
                existingMode = tempMode;
            }

            PolicyAssignmentEnforcementMode?inputMode = null;

            if (Enum.TryParse(this.InputObject?.Properties?.EnforcementMode?.ToString(), true, out PolicyAssignmentEnforcementMode tempMode1))
            {
                inputMode = tempMode1;
            }

            var policyAssignmentObject = new PolicyAssignment
            {
                Name     = this.Name ?? this?.InputObject?.Name ?? resource.Name,
                Identity = this.AssignIdentity.IsPresent ? new ResourceIdentity {
                    Type = ResourceIdentityType.SystemAssigned
                } : null,
                Location   = this.Location ?? this.InputObject?.Location ?? resource.Location,
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName        = this.DisplayName ?? this?.InputObject?.Properties?.DisplayName ?? resource.Properties["displayName"]?.ToString(),
                    Description        = this.Description ?? this?.InputObject?.Properties?.Description ?? resource.Properties["description"]?.ToString(),
                    Scope              = resource.Properties["scope"]?.ToString(),
                    NotScopes          = this.NotScope ?? this?.InputObject?.Properties?.NotScopes ?? resource.Properties["NotScopes"]?.ToString()?.Split(','),
                    PolicyDefinitionId = resource.Properties["policyDefinitionId"]?.ToString(),
                    Metadata           = parameterMetadata ?? inputMetadata ?? resource.Properties["metadata"] as JObject,
                    EnforcementMode    = this.EnforcementMode ?? inputMode ?? existingMode,
                    Parameters         =
                        this.GetParameters(this.PolicyParameter, this.PolicyParameterObject)
                        ?? this.InputObject?.Properties?.Parameters?.ToResourcePropertiesBody() as JObject
                        ?? resource.Properties["parameters"] as JObject
                }
            };

            return(policyAssignmentObject.ToJToken());
        }
Esempio n. 8
0
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource()
        {
            if (this.AssignIdentity != null && this.AssignIdentity.IsPresent)
            {
                this.IdentityType = ManagedIdentityType.SystemAssigned;
            }

            ResourceIdentity identityObject = this.IdentityType != null ?
                                              (this.IdentityType == ManagedIdentityType.UserAssigned ?
                                               new ResourceIdentity
            {
                Type = IdentityType.ToString(),
                UserAssignedIdentities = new Dictionary <string, UserAssignedIdentityResource>
                {
                    { this.IdentityId, new UserAssignedIdentityResource {
                      } }
                }
            } :
                                               new ResourceIdentity {
                Type = IdentityType.ToString()
            }
                                              ) : null;

            var policyassignmentObject = new PolicyAssignment
            {
                Name       = this.Name,
                Identity   = identityObject,
                Location   = this.Location,
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName           = this.DisplayName ?? null,
                    Description           = this.Description ?? null,
                    Scope                 = this.Scope,
                    NotScopes             = this.NotScope ?? null,
                    Metadata              = this.Metadata == null ? null : this.GetObjectFromParameter(this.Metadata, nameof(this.Metadata)),
                    EnforcementMode       = EnforcementMode ?? PolicyAssignmentEnforcementMode.Default,
                    Parameters            = this.GetParameters(this.PolicyParameter, this.PolicyParameterObject),
                    NonComplianceMessages = this.NonComplianceMessage?.Where(message => message != null).SelectArray(message => message.ToModel())
                }
            };

            if (this.PolicyDefinition != null)
            {
                policyassignmentObject.Properties.PolicyDefinitionId = this.PolicyDefinition.PolicyDefinitionId;
            }
            else if (this.PolicySetDefinition != null)
            {
                policyassignmentObject.Properties.PolicyDefinitionId = this.PolicySetDefinition.PolicySetDefinitionId;
            }

            return(policyassignmentObject.ToJToken());
        }
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource()
        {
            var policyassignmentObject = new PolicyAssignment
            {
                Name       = this.Name,
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName        = this.DisplayName ?? null,
                    PolicyDefinitionId = this.PolicyDefinition.Properties["policyDefinitionId"].Value.ToString(),
                    Scope = this.Scope
                }
            };

            return(policyassignmentObject.ToJToken());
        }
Esempio n. 10
0
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource(string resourceId, string apiVersion)
        {
            var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource();

            var policyAssignmentObject = new PolicyAssignment
            {
                Name       = this.Name ?? ResourceIdUtility.GetResourceName(this.Id),
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName = this.DisplayName ?? (resource.Properties["displayName"] != null
                        ? resource.Properties["displayName"].ToString()
                        : null),
                    Scope = resource.Properties["scope"].ToString(),
                    PolicyDefinitionId = resource.Properties["policyDefinitionId"].ToString()
                }
            };

            return(policyAssignmentObject.ToJToken());
        }
Esempio n. 11
0
        /// <summary>
        /// Constructs the resource
        /// </summary>
        private JToken GetResource(string resourceId, string apiVersion)
        {
            var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource();

            var metaDataJson = string.IsNullOrEmpty(this.Metadata) ? resource.Properties["metadata"]?.ToString() : GetObjectFromParameter(this.Metadata).ToString();

            var policyAssignmentObject = new PolicyAssignment
            {
                Name       = this.Name ?? resource.Name,
                Sku        = Sku?.ToDictionary(addValueLayer: false).ToJson().FromJson <PolicySku>(), // only store Sku if it was provided by user
                Properties = new PolicyAssignmentProperties
                {
                    DisplayName        = this.DisplayName ?? resource.Properties["displayName"]?.ToString(),
                    Description        = this.Description ?? resource.Properties["description"]?.ToString(),
                    Scope              = resource.Properties["scope"].ToString(),
                    NotScopes          = this.NotScope ?? resource.Properties["NotScopes"]?.ToString().Split(','),
                    PolicyDefinitionId = resource.Properties["policyDefinitionId"].ToString(),
                    Metadata           = string.IsNullOrEmpty(this.Metadata) ? null : JObject.Parse(metaDataJson),
                    Parameters         = (JObject)resource.Properties["parameters"]
                }
            };

            return(policyAssignmentObject.ToJToken());
        }