/// <summary>
 /// Initializes a new instance of the StorageAccountCreateParameters
 /// class.
 /// </summary>
 /// <param name="sku">Required. Gets or sets the SKU name.</param>
 /// <param name="kind">Required. Indicates the type of storage account.
 /// Possible values include: 'Storage', 'StorageV2', 'BlobStorage',
 /// 'FileStorage', 'BlockBlobStorage'</param>
 /// <param name="location">Required. Gets or sets the location of the
 /// resource. This will be one of the supported and registered Azure
 /// Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo
 /// region of a resource cannot be changed once it is created, but if
 /// an identical geo region is specified on update, the request will
 /// succeed.</param>
 /// <param name="extendedLocation">Optional. Set the extended location
 /// of the resource. If not set, the storage account will be created in
 /// Azure main region. Otherwise it will be created in the specified
 /// extended location</param>
 /// <param name="tags">Gets or sets a list of key value pairs that
 /// describe the resource. These tags can be used for viewing and
 /// grouping this resource (across resource groups). A maximum of 15
 /// tags can be provided for a resource. Each tag must have a key with
 /// a length no greater than 128 characters and a value with a length
 /// no greater than 256 characters.</param>
 /// <param name="identity">The identity of the resource.</param>
 /// <param name="sasPolicy">SasPolicy assigned to the storage
 /// account.</param>
 /// <param name="keyPolicy">KeyPolicy assigned to the storage
 /// account.</param>
 /// <param name="customDomain">User domain assigned to the storage
 /// account. Name is the CNAME source. Only one custom domain is
 /// supported per storage account at this time. To clear the existing
 /// custom domain, use an empty string for the custom domain name
 /// property.</param>
 /// <param name="encryption">Not applicable. Azure Storage encryption
 /// is enabled for all storage accounts and cannot be disabled.</param>
 /// <param name="networkRuleSet">Network rule set</param>
 /// <param name="accessTier">Required for storage accounts where kind =
 /// BlobStorage. The access tier used for billing. Possible values
 /// include: 'Hot', 'Cool'</param>
 /// <param name="azureFilesIdentityBasedAuthentication">Provides the
 /// identity based authentication settings for Azure Files.</param>
 /// <param name="enableHttpsTrafficOnly">Allows https traffic only to
 /// storage service if sets to true. The default value is true since
 /// API version 2019-04-01.</param>
 /// <param name="isHnsEnabled">Account HierarchicalNamespace enabled if
 /// sets to true.</param>
 /// <param name="largeFileSharesState">Allow large file shares if sets
 /// to Enabled. It cannot be disabled once it is enabled. Possible
 /// values include: 'Disabled', 'Enabled'</param>
 /// <param name="routingPreference">Maintains information about the
 /// network routing choice opted by the user for data transfer</param>
 /// <param name="allowBlobPublicAccess">Allow or disallow public access
 /// to all blobs or containers in the storage account. The default
 /// interpretation is true for this property.</param>
 /// <param name="minimumTlsVersion">Set the minimum TLS version to be
 /// permitted on requests to storage. The default interpretation is TLS
 /// 1.0 for this property. Possible values include: 'TLS1_0', 'TLS1_1',
 /// 'TLS1_2'</param>
 /// <param name="allowSharedKeyAccess">Indicates whether the storage
 /// account permits requests to be authorized with the account access
 /// key via Shared Key. If false, then all requests, including shared
 /// access signatures, must be authorized with Azure Active Directory
 /// (Azure AD). The default value is null, which is equivalent to
 /// true.</param>
 /// <param name="enableNfsV3">NFS 3.0 protocol support enabled if set
 /// to true.</param>
 public StorageAccountCreateParameters(Sku sku, string kind, string location, ExtendedLocation extendedLocation = default(ExtendedLocation), IDictionary <string, string> tags = default(IDictionary <string, string>), Identity identity = default(Identity), SasPolicy sasPolicy = default(SasPolicy), KeyPolicy keyPolicy = default(KeyPolicy), CustomDomain customDomain = default(CustomDomain), Encryption encryption = default(Encryption), NetworkRuleSet networkRuleSet = default(NetworkRuleSet), AccessTier?accessTier = default(AccessTier?), AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication = default(AzureFilesIdentityBasedAuthentication), bool?enableHttpsTrafficOnly = default(bool?), bool?isHnsEnabled = default(bool?), string largeFileSharesState = default(string), RoutingPreference routingPreference = default(RoutingPreference), bool?allowBlobPublicAccess = default(bool?), string minimumTlsVersion = default(string), bool?allowSharedKeyAccess = default(bool?), bool?enableNfsV3 = default(bool?))
 {
     Sku              = sku;
     Kind             = kind;
     Location         = location;
     ExtendedLocation = extendedLocation;
     Tags             = tags;
     Identity         = identity;
     SasPolicy        = sasPolicy;
     KeyPolicy        = keyPolicy;
     CustomDomain     = customDomain;
     Encryption       = encryption;
     NetworkRuleSet   = networkRuleSet;
     AccessTier       = accessTier;
     AzureFilesIdentityBasedAuthentication = azureFilesIdentityBasedAuthentication;
     EnableHttpsTrafficOnly = enableHttpsTrafficOnly;
     IsHnsEnabled           = isHnsEnabled;
     LargeFileSharesState   = largeFileSharesState;
     RoutingPreference      = routingPreference;
     AllowBlobPublicAccess  = allowBlobPublicAccess;
     MinimumTlsVersion      = minimumTlsVersion;
     AllowSharedKeyAccess   = allowSharedKeyAccess;
     EnableNfsV3            = enableNfsV3;
     CustomInit();
 }
Example #2
0
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (Sku != null)
     {
         Sku.Validate();
     }
     if (Identity != null)
     {
         Identity.Validate();
     }
     if (CustomDomain != null)
     {
         CustomDomain.Validate();
     }
     if (Encryption != null)
     {
         Encryption.Validate();
     }
     if (SasPolicy != null)
     {
         SasPolicy.Validate();
     }
     if (KeyPolicy != null)
     {
         KeyPolicy.Validate();
     }
     if (AzureFilesIdentityBasedAuthentication != null)
     {
         AzureFilesIdentityBasedAuthentication.Validate();
     }
     if (NetworkRuleSet != null)
     {
         NetworkRuleSet.Validate();
     }
 }
Example #3
0
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public override void Validate()
 {
     base.Validate();
     if (Sku != null)
     {
         Sku.Validate();
     }
     if (Identity != null)
     {
         Identity.Validate();
     }
     if (CustomDomain != null)
     {
         CustomDomain.Validate();
     }
     if (SasPolicy != null)
     {
         SasPolicy.Validate();
     }
     if (KeyPolicy != null)
     {
         KeyPolicy.Validate();
     }
     if (Encryption != null)
     {
         Encryption.Validate();
     }
     if (AzureFilesIdentityBasedAuthentication != null)
     {
         AzureFilesIdentityBasedAuthentication.Validate();
     }
     if (NetworkRuleSet != null)
     {
         NetworkRuleSet.Validate();
     }
     if (PrivateEndpointConnections != null)
     {
         foreach (var element in PrivateEndpointConnections)
         {
             if (element != null)
             {
                 element.Validate();
             }
         }
     }
     if (BlobRestoreStatus != null)
     {
         BlobRestoreStatus.Validate();
     }
 }
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (Sku == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Sku");
     }
     if (Kind == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Kind");
     }
     if (Location == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Location");
     }
     if (Sku != null)
     {
         Sku.Validate();
     }
     if (Identity != null)
     {
         Identity.Validate();
     }
     if (SasPolicy != null)
     {
         SasPolicy.Validate();
     }
     if (KeyPolicy != null)
     {
         KeyPolicy.Validate();
     }
     if (CustomDomain != null)
     {
         CustomDomain.Validate();
     }
     if (Encryption != null)
     {
         Encryption.Validate();
     }
     if (NetworkRuleSet != null)
     {
         NetworkRuleSet.Validate();
     }
     if (AzureFilesIdentityBasedAuthentication != null)
     {
         AzureFilesIdentityBasedAuthentication.Validate();
     }
 }
Example #5
0
 /// <summary>
 /// Initializes a new instance of the StorageAccount class.
 /// </summary>
 /// <param name="location">The geo-location where the resource
 /// lives</param>
 /// <param name="id">Fully qualified resource ID for the resource. Ex -
 /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}</param>
 /// <param name="name">The name of the resource</param>
 /// <param name="type">The type of the resource. E.g.
 /// "Microsoft.Compute/virtualMachines" or
 /// "Microsoft.Storage/storageAccounts"</param>
 /// <param name="tags">Resource tags.</param>
 /// <param name="sku">Gets the SKU.</param>
 /// <param name="kind">Gets the Kind. Possible values include:
 /// 'Storage', 'StorageV2', 'BlobStorage', 'FileStorage',
 /// 'BlockBlobStorage'</param>
 /// <param name="identity">The identity of the resource.</param>
 /// <param name="extendedLocation">The extendedLocation of the
 /// resource.</param>
 /// <param name="provisioningState">Gets the status of the storage
 /// account at the time the operation was called. Possible values
 /// include: 'Creating', 'ResolvingDNS', 'Succeeded'</param>
 /// <param name="primaryEndpoints">Gets the URLs that are used to
 /// perform a retrieval of a public blob, queue, or table object. Note
 /// that Standard_ZRS and Premium_LRS accounts only return the blob
 /// endpoint.</param>
 /// <param name="primaryLocation">Gets the location of the primary data
 /// center for the storage account.</param>
 /// <param name="statusOfPrimary">Gets the status indicating whether
 /// the primary location of the storage account is available or
 /// unavailable. Possible values include: 'available',
 /// 'unavailable'</param>
 /// <param name="lastGeoFailoverTime">Gets the timestamp of the most
 /// recent instance of a failover to the secondary location. Only the
 /// most recent timestamp is retained. This element is not returned if
 /// there has never been a failover instance. Only available if the
 /// accountType is Standard_GRS or Standard_RAGRS.</param>
 /// <param name="secondaryLocation">Gets the location of the
 /// geo-replicated secondary for the storage account. Only available if
 /// the accountType is Standard_GRS or Standard_RAGRS.</param>
 /// <param name="statusOfSecondary">Gets the status indicating whether
 /// the secondary location of the storage account is available or
 /// unavailable. Only available if the SKU name is Standard_GRS or
 /// Standard_RAGRS. Possible values include: 'available',
 /// 'unavailable'</param>
 /// <param name="creationTime">Gets the creation date and time of the
 /// storage account in UTC.</param>
 /// <param name="customDomain">Gets the custom domain the user assigned
 /// to this storage account.</param>
 /// <param name="sasPolicy">SasPolicy assigned to the storage
 /// account.</param>
 /// <param name="keyPolicy">KeyPolicy assigned to the storage
 /// account.</param>
 /// <param name="keyCreationTime">Storage account keys creation
 /// time.</param>
 /// <param name="secondaryEndpoints">Gets the URLs that are used to
 /// perform a retrieval of a public blob, queue, or table object from
 /// the secondary location of the storage account. Only available if
 /// the SKU name is Standard_RAGRS.</param>
 /// <param name="encryption">Gets the encryption settings on the
 /// account. If unspecified, the account is unencrypted.</param>
 /// <param name="accessTier">Required for storage accounts where kind =
 /// BlobStorage. The access tier used for billing. Possible values
 /// include: 'Hot', 'Cool'</param>
 /// <param name="azureFilesIdentityBasedAuthentication">Provides the
 /// identity based authentication settings for Azure Files.</param>
 /// <param name="enableHttpsTrafficOnly">Allows https traffic only to
 /// storage service if sets to true.</param>
 /// <param name="networkRuleSet">Network rule set</param>
 /// <param name="isHnsEnabled">Account HierarchicalNamespace enabled if
 /// sets to true.</param>
 /// <param name="geoReplicationStats">Geo Replication Stats</param>
 /// <param name="failoverInProgress">If the failover is in progress,
 /// the value will be true, otherwise, it will be null.</param>
 /// <param name="largeFileSharesState">Allow large file shares if sets
 /// to Enabled. It cannot be disabled once it is enabled. Possible
 /// values include: 'Disabled', 'Enabled'</param>
 /// <param name="privateEndpointConnections">List of private endpoint
 /// connection associated with the specified storage account</param>
 /// <param name="routingPreference">Maintains information about the
 /// network routing choice opted by the user for data transfer</param>
 /// <param name="blobRestoreStatus">Blob restore status</param>
 /// <param name="allowBlobPublicAccess">Allow or disallow public access
 /// to all blobs or containers in the storage account. The default
 /// interpretation is true for this property.</param>
 /// <param name="minimumTlsVersion">Set the minimum TLS version to be
 /// permitted on requests to storage. The default interpretation is TLS
 /// 1.0 for this property. Possible values include: 'TLS1_0', 'TLS1_1',
 /// 'TLS1_2'</param>
 /// <param name="allowSharedKeyAccess">Indicates whether the storage
 /// account permits requests to be authorized with the account access
 /// key via Shared Key. If false, then all requests, including shared
 /// access signatures, must be authorized with Azure Active Directory
 /// (Azure AD). The default value is null, which is equivalent to
 /// true.</param>
 /// <param name="enableNfsV3">NFS 3.0 protocol support enabled if set
 /// to true.</param>
 public StorageAccount(string location, string id = default(string), string name = default(string), string type = default(string), IDictionary <string, string> tags = default(IDictionary <string, string>), Sku sku = default(Sku), string kind = default(string), Identity identity = default(Identity), ExtendedLocation extendedLocation = default(ExtendedLocation), ProvisioningState?provisioningState = default(ProvisioningState?), Endpoints primaryEndpoints = default(Endpoints), string primaryLocation = default(string), AccountStatus?statusOfPrimary = default(AccountStatus?), System.DateTime?lastGeoFailoverTime = default(System.DateTime?), string secondaryLocation = default(string), AccountStatus?statusOfSecondary = default(AccountStatus?), System.DateTime?creationTime = default(System.DateTime?), CustomDomain customDomain = default(CustomDomain), SasPolicy sasPolicy = default(SasPolicy), KeyPolicy keyPolicy = default(KeyPolicy), KeyCreationTime keyCreationTime = default(KeyCreationTime), Endpoints secondaryEndpoints = default(Endpoints), Encryption encryption = default(Encryption), AccessTier?accessTier = default(AccessTier?), AzureFilesIdentityBasedAuthentication azureFilesIdentityBasedAuthentication = default(AzureFilesIdentityBasedAuthentication), bool?enableHttpsTrafficOnly = default(bool?), NetworkRuleSet networkRuleSet = default(NetworkRuleSet), bool?isHnsEnabled = default(bool?), GeoReplicationStats geoReplicationStats = default(GeoReplicationStats), bool?failoverInProgress = default(bool?), string largeFileSharesState = default(string), IList <PrivateEndpointConnection> privateEndpointConnections = default(IList <PrivateEndpointConnection>), RoutingPreference routingPreference = default(RoutingPreference), BlobRestoreStatus blobRestoreStatus = default(BlobRestoreStatus), bool?allowBlobPublicAccess = default(bool?), string minimumTlsVersion = default(string), bool?allowSharedKeyAccess = default(bool?), bool?enableNfsV3 = default(bool?))
     : base(location, id, name, type, tags)
 {
     Sku                 = sku;
     Kind                = kind;
     Identity            = identity;
     ExtendedLocation    = extendedLocation;
     ProvisioningState   = provisioningState;
     PrimaryEndpoints    = primaryEndpoints;
     PrimaryLocation     = primaryLocation;
     StatusOfPrimary     = statusOfPrimary;
     LastGeoFailoverTime = lastGeoFailoverTime;
     SecondaryLocation   = secondaryLocation;
     StatusOfSecondary   = statusOfSecondary;
     CreationTime        = creationTime;
     CustomDomain        = customDomain;
     SasPolicy           = sasPolicy;
     KeyPolicy           = keyPolicy;
     KeyCreationTime     = keyCreationTime;
     SecondaryEndpoints  = secondaryEndpoints;
     Encryption          = encryption;
     AccessTier          = accessTier;
     AzureFilesIdentityBasedAuthentication = azureFilesIdentityBasedAuthentication;
     EnableHttpsTrafficOnly     = enableHttpsTrafficOnly;
     NetworkRuleSet             = networkRuleSet;
     IsHnsEnabled               = isHnsEnabled;
     GeoReplicationStats        = geoReplicationStats;
     FailoverInProgress         = failoverInProgress;
     LargeFileSharesState       = largeFileSharesState;
     PrivateEndpointConnections = privateEndpointConnections;
     RoutingPreference          = routingPreference;
     BlobRestoreStatus          = blobRestoreStatus;
     AllowBlobPublicAccess      = allowBlobPublicAccess;
     MinimumTlsVersion          = minimumTlsVersion;
     AllowSharedKeyAccess       = allowSharedKeyAccess;
     EnableNfsV3 = enableNfsV3;
     CustomInit();
 }