/// <summary>
 /// Initializes a new instance of the VaultPatchProperties class.
 /// </summary>
 /// <param name="tenantId">The Azure Active Directory tenant ID that
 /// should be used for authenticating requests to the key
 /// vault.</param>
 /// <param name="sku">SKU details</param>
 /// <param name="accessPolicies">An array of 0 to 16 identities that
 /// have access to the key vault. All identities in the array must use
 /// the same tenant ID as the key vault's tenant ID.</param>
 /// <param name="enabledForDeployment">Property to specify whether
 /// Azure Virtual Machines are permitted to retrieve certificates
 /// stored as secrets from the key vault.</param>
 /// <param name="enabledForDiskEncryption">Property to specify whether
 /// Azure Disk Encryption is permitted to retrieve secrets from the
 /// vault and unwrap keys.</param>
 /// <param name="enabledForTemplateDeployment">Property to specify
 /// whether Azure Resource Manager is permitted to retrieve secrets
 /// from the key vault.</param>
 /// <param name="enableSoftDelete">Property to specify whether the
 /// 'soft delete' functionality is enabled for this key vault. Once set
 /// to true, it cannot be reverted to false.</param>
 /// <param name="enableRbacAuthorization">Property that controls how
 /// data actions are authorized. When true, the key vault will use Role
 /// Based Access Control (RBAC) for authorization of data actions, and
 /// the access policies specified in vault properties will be  ignored
 /// (warning: this is a preview feature). When false, the key vault
 /// will use the access policies specified in vault properties, and any
 /// policy stored on Azure Resource Manager will be ignored. If null or
 /// not specified, the value of this property will not change.</param>
 /// <param name="softDeleteRetentionInDays">softDelete data retention
 /// days. It accepts &gt;=7 and &lt;=90.</param>
 /// <param name="createMode">The vault's create mode to indicate
 /// whether the vault need to be recovered or not. Possible values
 /// include: 'recover', 'default'</param>
 /// <param name="enablePurgeProtection">Property specifying whether
 /// protection against purge is enabled for this vault. Setting this
 /// property to true activates protection against purge for this vault
 /// and its content - only the Key Vault service may initiate a hard,
 /// irrecoverable deletion. The setting is effective only if soft
 /// delete is also enabled. Enabling this functionality is irreversible
 /// - that is, the property does not accept false as its value.</param>
 /// <param name="networkAcls">A collection of rules governing the
 /// accessibility of the vault from specific network locations.</param>
 public VaultPatchProperties(System.Guid?tenantId = default(System.Guid?), Sku sku = default(Sku), IList <AccessPolicyEntry> accessPolicies = default(IList <AccessPolicyEntry>), bool?enabledForDeployment = default(bool?), bool?enabledForDiskEncryption = default(bool?), bool?enabledForTemplateDeployment = default(bool?), bool?enableSoftDelete = default(bool?), bool?enableRbacAuthorization = default(bool?), int?softDeleteRetentionInDays = default(int?), CreateMode?createMode = default(CreateMode?), bool?enablePurgeProtection = default(bool?), NetworkRuleSet networkAcls = default(NetworkRuleSet))
 {
     TenantId                     = tenantId;
     Sku                          = sku;
     AccessPolicies               = accessPolicies;
     EnabledForDeployment         = enabledForDeployment;
     EnabledForDiskEncryption     = enabledForDiskEncryption;
     EnabledForTemplateDeployment = enabledForTemplateDeployment;
     EnableSoftDelete             = enableSoftDelete;
     EnableRbacAuthorization      = enableRbacAuthorization;
     SoftDeleteRetentionInDays    = softDeleteRetentionInDays;
     CreateMode                   = createMode;
     EnablePurgeProtection        = enablePurgeProtection;
     NetworkAcls                  = networkAcls;
     CustomInit();
 }