Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azurenative.storage.StorageAccountArgs Maven / Gradle / Ivy
Go to download
A native Pulumi package for creating and managing Azure resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.azurenative.storage;
import com.pulumi.azurenative.storage.enums.AccessTier;
import com.pulumi.azurenative.storage.enums.AllowedCopyScope;
import com.pulumi.azurenative.storage.enums.DnsEndpointType;
import com.pulumi.azurenative.storage.enums.Kind;
import com.pulumi.azurenative.storage.enums.LargeFileSharesState;
import com.pulumi.azurenative.storage.enums.MinimumTlsVersion;
import com.pulumi.azurenative.storage.enums.PublicNetworkAccess;
import com.pulumi.azurenative.storage.inputs.AzureFilesIdentityBasedAuthenticationArgs;
import com.pulumi.azurenative.storage.inputs.CustomDomainArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.storage.inputs.IdentityArgs;
import com.pulumi.azurenative.storage.inputs.ImmutableStorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.KeyPolicyArgs;
import com.pulumi.azurenative.storage.inputs.NetworkRuleSetArgs;
import com.pulumi.azurenative.storage.inputs.RoutingPreferenceArgs;
import com.pulumi.azurenative.storage.inputs.SasPolicyArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class StorageAccountArgs extends com.pulumi.resources.ResourceArgs {
public static final StorageAccountArgs Empty = new StorageAccountArgs();
/**
* Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.
*
*/
@Import(name="accessTier")
private @Nullable Output accessTier;
/**
* @return Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.
*
*/
public Optional> accessTier() {
return Optional.ofNullable(this.accessTier);
}
/**
* The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
*
*/
@Import(name="accountName")
private @Nullable Output accountName;
/**
* @return The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
*
*/
public Optional> accountName() {
return Optional.ofNullable(this.accountName);
}
/**
* Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property.
*
*/
@Import(name="allowBlobPublicAccess")
private @Nullable Output allowBlobPublicAccess;
/**
* @return Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property.
*
*/
public Optional> allowBlobPublicAccess() {
return Optional.ofNullable(this.allowBlobPublicAccess);
}
/**
* Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property.
*
*/
@Import(name="allowCrossTenantReplication")
private @Nullable Output allowCrossTenantReplication;
/**
* @return Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property.
*
*/
public Optional> allowCrossTenantReplication() {
return Optional.ofNullable(this.allowCrossTenantReplication);
}
/**
* 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.
*
*/
@Import(name="allowSharedKeyAccess")
private @Nullable Output allowSharedKeyAccess;
/**
* @return 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.
*
*/
public Optional> allowSharedKeyAccess() {
return Optional.ofNullable(this.allowSharedKeyAccess);
}
/**
* Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.
*
*/
@Import(name="allowedCopyScope")
private @Nullable Output> allowedCopyScope;
/**
* @return Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.
*
*/
public Optional>> allowedCopyScope() {
return Optional.ofNullable(this.allowedCopyScope);
}
/**
* Provides the identity based authentication settings for Azure Files.
*
*/
@Import(name="azureFilesIdentityBasedAuthentication")
private @Nullable Output azureFilesIdentityBasedAuthentication;
/**
* @return Provides the identity based authentication settings for Azure Files.
*
*/
public Optional> azureFilesIdentityBasedAuthentication() {
return Optional.ofNullable(this.azureFilesIdentityBasedAuthentication);
}
/**
* 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.
*
*/
@Import(name="customDomain")
private @Nullable Output customDomain;
/**
* @return 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.
*
*/
public Optional> customDomain() {
return Optional.ofNullable(this.customDomain);
}
/**
* A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property.
*
*/
@Import(name="defaultToOAuthAuthentication")
private @Nullable Output defaultToOAuthAuthentication;
/**
* @return A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property.
*
*/
public Optional> defaultToOAuthAuthentication() {
return Optional.ofNullable(this.defaultToOAuthAuthentication);
}
/**
* Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier.
*
*/
@Import(name="dnsEndpointType")
private @Nullable Output> dnsEndpointType;
/**
* @return Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier.
*
*/
public Optional>> dnsEndpointType() {
return Optional.ofNullable(this.dnsEndpointType);
}
/**
* Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01.
*
*/
@Import(name="enableHttpsTrafficOnly")
private @Nullable Output enableHttpsTrafficOnly;
/**
* @return Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01.
*
*/
public Optional> enableHttpsTrafficOnly() {
return Optional.ofNullable(this.enableHttpsTrafficOnly);
}
/**
* NFS 3.0 protocol support enabled if set to true.
*
*/
@Import(name="enableNfsV3")
private @Nullable Output enableNfsV3;
/**
* @return NFS 3.0 protocol support enabled if set to true.
*
*/
public Optional> enableNfsV3() {
return Optional.ofNullable(this.enableNfsV3);
}
/**
* Encryption settings to be used for server-side encryption for the storage account.
*
*/
@Import(name="encryption")
private @Nullable Output encryption;
/**
* @return Encryption settings to be used for server-side encryption for the storage account.
*
*/
public Optional> encryption() {
return Optional.ofNullable(this.encryption);
}
/**
* 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
*
*/
@Import(name="extendedLocation")
private @Nullable Output extendedLocation;
/**
* @return 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
*
*/
public Optional> extendedLocation() {
return Optional.ofNullable(this.extendedLocation);
}
/**
* The identity of the resource.
*
*/
@Import(name="identity")
private @Nullable Output identity;
/**
* @return The identity of the resource.
*
*/
public Optional> identity() {
return Optional.ofNullable(this.identity);
}
/**
* The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default.
*
*/
@Import(name="immutableStorageWithVersioning")
private @Nullable Output immutableStorageWithVersioning;
/**
* @return The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default.
*
*/
public Optional> immutableStorageWithVersioning() {
return Optional.ofNullable(this.immutableStorageWithVersioning);
}
/**
* Account HierarchicalNamespace enabled if sets to true.
*
*/
@Import(name="isHnsEnabled")
private @Nullable Output isHnsEnabled;
/**
* @return Account HierarchicalNamespace enabled if sets to true.
*
*/
public Optional> isHnsEnabled() {
return Optional.ofNullable(this.isHnsEnabled);
}
/**
* Enables local users feature, if set to true
*
*/
@Import(name="isLocalUserEnabled")
private @Nullable Output isLocalUserEnabled;
/**
* @return Enables local users feature, if set to true
*
*/
public Optional> isLocalUserEnabled() {
return Optional.ofNullable(this.isLocalUserEnabled);
}
/**
* Enables Secure File Transfer Protocol, if set to true
*
*/
@Import(name="isSftpEnabled")
private @Nullable Output isSftpEnabled;
/**
* @return Enables Secure File Transfer Protocol, if set to true
*
*/
public Optional> isSftpEnabled() {
return Optional.ofNullable(this.isSftpEnabled);
}
/**
* KeyPolicy assigned to the storage account.
*
*/
@Import(name="keyPolicy")
private @Nullable Output keyPolicy;
/**
* @return KeyPolicy assigned to the storage account.
*
*/
public Optional> keyPolicy() {
return Optional.ofNullable(this.keyPolicy);
}
/**
* Required. Indicates the type of storage account.
*
*/
@Import(name="kind", required=true)
private Output> kind;
/**
* @return Required. Indicates the type of storage account.
*
*/
public Output> kind() {
return this.kind;
}
/**
* Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.
*
*/
@Import(name="largeFileSharesState")
private @Nullable Output> largeFileSharesState;
/**
* @return Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.
*
*/
public Optional>> largeFileSharesState() {
return Optional.ofNullable(this.largeFileSharesState);
}
/**
* 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.
*
*/
@Import(name="location")
private @Nullable Output location;
/**
* @return 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.
*
*/
public Optional> location() {
return Optional.ofNullable(this.location);
}
/**
* Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property.
*
*/
@Import(name="minimumTlsVersion")
private @Nullable Output> minimumTlsVersion;
/**
* @return Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property.
*
*/
public Optional>> minimumTlsVersion() {
return Optional.ofNullable(this.minimumTlsVersion);
}
/**
* Network rule set
*
*/
@Import(name="networkRuleSet")
private @Nullable Output networkRuleSet;
/**
* @return Network rule set
*
*/
public Optional> networkRuleSet() {
return Optional.ofNullable(this.networkRuleSet);
}
/**
* Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'.
*
*/
@Import(name="publicNetworkAccess")
private @Nullable Output> publicNetworkAccess;
/**
* @return Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'.
*
*/
public Optional>> publicNetworkAccess() {
return Optional.ofNullable(this.publicNetworkAccess);
}
/**
* The name of the resource group within the user's subscription. The name is case insensitive.
*
*/
@Import(name="resourceGroupName", required=true)
private Output resourceGroupName;
/**
* @return The name of the resource group within the user's subscription. The name is case insensitive.
*
*/
public Output resourceGroupName() {
return this.resourceGroupName;
}
/**
* Maintains information about the network routing choice opted by the user for data transfer
*
*/
@Import(name="routingPreference")
private @Nullable Output routingPreference;
/**
* @return Maintains information about the network routing choice opted by the user for data transfer
*
*/
public Optional> routingPreference() {
return Optional.ofNullable(this.routingPreference);
}
/**
* SasPolicy assigned to the storage account.
*
*/
@Import(name="sasPolicy")
private @Nullable Output sasPolicy;
/**
* @return SasPolicy assigned to the storage account.
*
*/
public Optional> sasPolicy() {
return Optional.ofNullable(this.sasPolicy);
}
/**
* Required. Gets or sets the SKU name.
*
*/
@Import(name="sku", required=true)
private Output sku;
/**
* @return Required. Gets or sets the SKU name.
*
*/
public Output sku() {
return this.sku;
}
/**
* 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.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return 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.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
private StorageAccountArgs() {}
private StorageAccountArgs(StorageAccountArgs $) {
this.accessTier = $.accessTier;
this.accountName = $.accountName;
this.allowBlobPublicAccess = $.allowBlobPublicAccess;
this.allowCrossTenantReplication = $.allowCrossTenantReplication;
this.allowSharedKeyAccess = $.allowSharedKeyAccess;
this.allowedCopyScope = $.allowedCopyScope;
this.azureFilesIdentityBasedAuthentication = $.azureFilesIdentityBasedAuthentication;
this.customDomain = $.customDomain;
this.defaultToOAuthAuthentication = $.defaultToOAuthAuthentication;
this.dnsEndpointType = $.dnsEndpointType;
this.enableHttpsTrafficOnly = $.enableHttpsTrafficOnly;
this.enableNfsV3 = $.enableNfsV3;
this.encryption = $.encryption;
this.extendedLocation = $.extendedLocation;
this.identity = $.identity;
this.immutableStorageWithVersioning = $.immutableStorageWithVersioning;
this.isHnsEnabled = $.isHnsEnabled;
this.isLocalUserEnabled = $.isLocalUserEnabled;
this.isSftpEnabled = $.isSftpEnabled;
this.keyPolicy = $.keyPolicy;
this.kind = $.kind;
this.largeFileSharesState = $.largeFileSharesState;
this.location = $.location;
this.minimumTlsVersion = $.minimumTlsVersion;
this.networkRuleSet = $.networkRuleSet;
this.publicNetworkAccess = $.publicNetworkAccess;
this.resourceGroupName = $.resourceGroupName;
this.routingPreference = $.routingPreference;
this.sasPolicy = $.sasPolicy;
this.sku = $.sku;
this.tags = $.tags;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(StorageAccountArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private StorageAccountArgs $;
public Builder() {
$ = new StorageAccountArgs();
}
public Builder(StorageAccountArgs defaults) {
$ = new StorageAccountArgs(Objects.requireNonNull(defaults));
}
/**
* @param accessTier Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.
*
* @return builder
*
*/
public Builder accessTier(@Nullable Output accessTier) {
$.accessTier = accessTier;
return this;
}
/**
* @param accessTier Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.
*
* @return builder
*
*/
public Builder accessTier(AccessTier accessTier) {
return accessTier(Output.of(accessTier));
}
/**
* @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
*
* @return builder
*
*/
public Builder accountName(@Nullable Output accountName) {
$.accountName = accountName;
return this;
}
/**
* @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
*
* @return builder
*
*/
public Builder accountName(String accountName) {
return accountName(Output.of(accountName));
}
/**
* @param allowBlobPublicAccess Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property.
*
* @return builder
*
*/
public Builder allowBlobPublicAccess(@Nullable Output allowBlobPublicAccess) {
$.allowBlobPublicAccess = allowBlobPublicAccess;
return this;
}
/**
* @param allowBlobPublicAccess Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property.
*
* @return builder
*
*/
public Builder allowBlobPublicAccess(Boolean allowBlobPublicAccess) {
return allowBlobPublicAccess(Output.of(allowBlobPublicAccess));
}
/**
* @param allowCrossTenantReplication Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property.
*
* @return builder
*
*/
public Builder allowCrossTenantReplication(@Nullable Output allowCrossTenantReplication) {
$.allowCrossTenantReplication = allowCrossTenantReplication;
return this;
}
/**
* @param allowCrossTenantReplication Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property.
*
* @return builder
*
*/
public Builder allowCrossTenantReplication(Boolean allowCrossTenantReplication) {
return allowCrossTenantReplication(Output.of(allowCrossTenantReplication));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder allowSharedKeyAccess(@Nullable Output allowSharedKeyAccess) {
$.allowSharedKeyAccess = allowSharedKeyAccess;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder allowSharedKeyAccess(Boolean allowSharedKeyAccess) {
return allowSharedKeyAccess(Output.of(allowSharedKeyAccess));
}
/**
* @param allowedCopyScope Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.
*
* @return builder
*
*/
public Builder allowedCopyScope(@Nullable Output> allowedCopyScope) {
$.allowedCopyScope = allowedCopyScope;
return this;
}
/**
* @param allowedCopyScope Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.
*
* @return builder
*
*/
public Builder allowedCopyScope(Either allowedCopyScope) {
return allowedCopyScope(Output.of(allowedCopyScope));
}
/**
* @param allowedCopyScope Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.
*
* @return builder
*
*/
public Builder allowedCopyScope(String allowedCopyScope) {
return allowedCopyScope(Either.ofLeft(allowedCopyScope));
}
/**
* @param allowedCopyScope Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.
*
* @return builder
*
*/
public Builder allowedCopyScope(AllowedCopyScope allowedCopyScope) {
return allowedCopyScope(Either.ofRight(allowedCopyScope));
}
/**
* @param azureFilesIdentityBasedAuthentication Provides the identity based authentication settings for Azure Files.
*
* @return builder
*
*/
public Builder azureFilesIdentityBasedAuthentication(@Nullable Output azureFilesIdentityBasedAuthentication) {
$.azureFilesIdentityBasedAuthentication = azureFilesIdentityBasedAuthentication;
return this;
}
/**
* @param azureFilesIdentityBasedAuthentication Provides the identity based authentication settings for Azure Files.
*
* @return builder
*
*/
public Builder azureFilesIdentityBasedAuthentication(AzureFilesIdentityBasedAuthenticationArgs azureFilesIdentityBasedAuthentication) {
return azureFilesIdentityBasedAuthentication(Output.of(azureFilesIdentityBasedAuthentication));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder customDomain(@Nullable Output customDomain) {
$.customDomain = customDomain;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder customDomain(CustomDomainArgs customDomain) {
return customDomain(Output.of(customDomain));
}
/**
* @param defaultToOAuthAuthentication A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property.
*
* @return builder
*
*/
public Builder defaultToOAuthAuthentication(@Nullable Output defaultToOAuthAuthentication) {
$.defaultToOAuthAuthentication = defaultToOAuthAuthentication;
return this;
}
/**
* @param defaultToOAuthAuthentication A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property.
*
* @return builder
*
*/
public Builder defaultToOAuthAuthentication(Boolean defaultToOAuthAuthentication) {
return defaultToOAuthAuthentication(Output.of(defaultToOAuthAuthentication));
}
/**
* @param dnsEndpointType Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier.
*
* @return builder
*
*/
public Builder dnsEndpointType(@Nullable Output> dnsEndpointType) {
$.dnsEndpointType = dnsEndpointType;
return this;
}
/**
* @param dnsEndpointType Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier.
*
* @return builder
*
*/
public Builder dnsEndpointType(Either dnsEndpointType) {
return dnsEndpointType(Output.of(dnsEndpointType));
}
/**
* @param dnsEndpointType Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier.
*
* @return builder
*
*/
public Builder dnsEndpointType(String dnsEndpointType) {
return dnsEndpointType(Either.ofLeft(dnsEndpointType));
}
/**
* @param dnsEndpointType Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier.
*
* @return builder
*
*/
public Builder dnsEndpointType(DnsEndpointType dnsEndpointType) {
return dnsEndpointType(Either.ofRight(dnsEndpointType));
}
/**
* @param enableHttpsTrafficOnly Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01.
*
* @return builder
*
*/
public Builder enableHttpsTrafficOnly(@Nullable Output enableHttpsTrafficOnly) {
$.enableHttpsTrafficOnly = enableHttpsTrafficOnly;
return this;
}
/**
* @param enableHttpsTrafficOnly Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01.
*
* @return builder
*
*/
public Builder enableHttpsTrafficOnly(Boolean enableHttpsTrafficOnly) {
return enableHttpsTrafficOnly(Output.of(enableHttpsTrafficOnly));
}
/**
* @param enableNfsV3 NFS 3.0 protocol support enabled if set to true.
*
* @return builder
*
*/
public Builder enableNfsV3(@Nullable Output enableNfsV3) {
$.enableNfsV3 = enableNfsV3;
return this;
}
/**
* @param enableNfsV3 NFS 3.0 protocol support enabled if set to true.
*
* @return builder
*
*/
public Builder enableNfsV3(Boolean enableNfsV3) {
return enableNfsV3(Output.of(enableNfsV3));
}
/**
* @param encryption Encryption settings to be used for server-side encryption for the storage account.
*
* @return builder
*
*/
public Builder encryption(@Nullable Output encryption) {
$.encryption = encryption;
return this;
}
/**
* @param encryption Encryption settings to be used for server-side encryption for the storage account.
*
* @return builder
*
*/
public Builder encryption(EncryptionArgs encryption) {
return encryption(Output.of(encryption));
}
/**
* @param 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
*
* @return builder
*
*/
public Builder extendedLocation(@Nullable Output extendedLocation) {
$.extendedLocation = extendedLocation;
return this;
}
/**
* @param 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
*
* @return builder
*
*/
public Builder extendedLocation(ExtendedLocationArgs extendedLocation) {
return extendedLocation(Output.of(extendedLocation));
}
/**
* @param identity The identity of the resource.
*
* @return builder
*
*/
public Builder identity(@Nullable Output identity) {
$.identity = identity;
return this;
}
/**
* @param identity The identity of the resource.
*
* @return builder
*
*/
public Builder identity(IdentityArgs identity) {
return identity(Output.of(identity));
}
/**
* @param immutableStorageWithVersioning The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default.
*
* @return builder
*
*/
public Builder immutableStorageWithVersioning(@Nullable Output immutableStorageWithVersioning) {
$.immutableStorageWithVersioning = immutableStorageWithVersioning;
return this;
}
/**
* @param immutableStorageWithVersioning The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default.
*
* @return builder
*
*/
public Builder immutableStorageWithVersioning(ImmutableStorageAccountArgs immutableStorageWithVersioning) {
return immutableStorageWithVersioning(Output.of(immutableStorageWithVersioning));
}
/**
* @param isHnsEnabled Account HierarchicalNamespace enabled if sets to true.
*
* @return builder
*
*/
public Builder isHnsEnabled(@Nullable Output isHnsEnabled) {
$.isHnsEnabled = isHnsEnabled;
return this;
}
/**
* @param isHnsEnabled Account HierarchicalNamespace enabled if sets to true.
*
* @return builder
*
*/
public Builder isHnsEnabled(Boolean isHnsEnabled) {
return isHnsEnabled(Output.of(isHnsEnabled));
}
/**
* @param isLocalUserEnabled Enables local users feature, if set to true
*
* @return builder
*
*/
public Builder isLocalUserEnabled(@Nullable Output isLocalUserEnabled) {
$.isLocalUserEnabled = isLocalUserEnabled;
return this;
}
/**
* @param isLocalUserEnabled Enables local users feature, if set to true
*
* @return builder
*
*/
public Builder isLocalUserEnabled(Boolean isLocalUserEnabled) {
return isLocalUserEnabled(Output.of(isLocalUserEnabled));
}
/**
* @param isSftpEnabled Enables Secure File Transfer Protocol, if set to true
*
* @return builder
*
*/
public Builder isSftpEnabled(@Nullable Output isSftpEnabled) {
$.isSftpEnabled = isSftpEnabled;
return this;
}
/**
* @param isSftpEnabled Enables Secure File Transfer Protocol, if set to true
*
* @return builder
*
*/
public Builder isSftpEnabled(Boolean isSftpEnabled) {
return isSftpEnabled(Output.of(isSftpEnabled));
}
/**
* @param keyPolicy KeyPolicy assigned to the storage account.
*
* @return builder
*
*/
public Builder keyPolicy(@Nullable Output keyPolicy) {
$.keyPolicy = keyPolicy;
return this;
}
/**
* @param keyPolicy KeyPolicy assigned to the storage account.
*
* @return builder
*
*/
public Builder keyPolicy(KeyPolicyArgs keyPolicy) {
return keyPolicy(Output.of(keyPolicy));
}
/**
* @param kind Required. Indicates the type of storage account.
*
* @return builder
*
*/
public Builder kind(Output> kind) {
$.kind = kind;
return this;
}
/**
* @param kind Required. Indicates the type of storage account.
*
* @return builder
*
*/
public Builder kind(Either kind) {
return kind(Output.of(kind));
}
/**
* @param kind Required. Indicates the type of storage account.
*
* @return builder
*
*/
public Builder kind(String kind) {
return kind(Either.ofLeft(kind));
}
/**
* @param kind Required. Indicates the type of storage account.
*
* @return builder
*
*/
public Builder kind(Kind kind) {
return kind(Either.ofRight(kind));
}
/**
* @param largeFileSharesState Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.
*
* @return builder
*
*/
public Builder largeFileSharesState(@Nullable Output> largeFileSharesState) {
$.largeFileSharesState = largeFileSharesState;
return this;
}
/**
* @param largeFileSharesState Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.
*
* @return builder
*
*/
public Builder largeFileSharesState(Either largeFileSharesState) {
return largeFileSharesState(Output.of(largeFileSharesState));
}
/**
* @param largeFileSharesState Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.
*
* @return builder
*
*/
public Builder largeFileSharesState(String largeFileSharesState) {
return largeFileSharesState(Either.ofLeft(largeFileSharesState));
}
/**
* @param largeFileSharesState Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.
*
* @return builder
*
*/
public Builder largeFileSharesState(LargeFileSharesState largeFileSharesState) {
return largeFileSharesState(Either.ofRight(largeFileSharesState));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder location(@Nullable Output location) {
$.location = location;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder location(String location) {
return location(Output.of(location));
}
/**
* @param minimumTlsVersion Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property.
*
* @return builder
*
*/
public Builder minimumTlsVersion(@Nullable Output> minimumTlsVersion) {
$.minimumTlsVersion = minimumTlsVersion;
return this;
}
/**
* @param minimumTlsVersion Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property.
*
* @return builder
*
*/
public Builder minimumTlsVersion(Either minimumTlsVersion) {
return minimumTlsVersion(Output.of(minimumTlsVersion));
}
/**
* @param minimumTlsVersion Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property.
*
* @return builder
*
*/
public Builder minimumTlsVersion(String minimumTlsVersion) {
return minimumTlsVersion(Either.ofLeft(minimumTlsVersion));
}
/**
* @param minimumTlsVersion Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property.
*
* @return builder
*
*/
public Builder minimumTlsVersion(MinimumTlsVersion minimumTlsVersion) {
return minimumTlsVersion(Either.ofRight(minimumTlsVersion));
}
/**
* @param networkRuleSet Network rule set
*
* @return builder
*
*/
public Builder networkRuleSet(@Nullable Output networkRuleSet) {
$.networkRuleSet = networkRuleSet;
return this;
}
/**
* @param networkRuleSet Network rule set
*
* @return builder
*
*/
public Builder networkRuleSet(NetworkRuleSetArgs networkRuleSet) {
return networkRuleSet(Output.of(networkRuleSet));
}
/**
* @param publicNetworkAccess Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'.
*
* @return builder
*
*/
public Builder publicNetworkAccess(@Nullable Output> publicNetworkAccess) {
$.publicNetworkAccess = publicNetworkAccess;
return this;
}
/**
* @param publicNetworkAccess Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'.
*
* @return builder
*
*/
public Builder publicNetworkAccess(Either publicNetworkAccess) {
return publicNetworkAccess(Output.of(publicNetworkAccess));
}
/**
* @param publicNetworkAccess Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'.
*
* @return builder
*
*/
public Builder publicNetworkAccess(String publicNetworkAccess) {
return publicNetworkAccess(Either.ofLeft(publicNetworkAccess));
}
/**
* @param publicNetworkAccess Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'.
*
* @return builder
*
*/
public Builder publicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
return publicNetworkAccess(Either.ofRight(publicNetworkAccess));
}
/**
* @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
*
* @return builder
*
*/
public Builder resourceGroupName(Output resourceGroupName) {
$.resourceGroupName = resourceGroupName;
return this;
}
/**
* @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
*
* @return builder
*
*/
public Builder resourceGroupName(String resourceGroupName) {
return resourceGroupName(Output.of(resourceGroupName));
}
/**
* @param routingPreference Maintains information about the network routing choice opted by the user for data transfer
*
* @return builder
*
*/
public Builder routingPreference(@Nullable Output routingPreference) {
$.routingPreference = routingPreference;
return this;
}
/**
* @param routingPreference Maintains information about the network routing choice opted by the user for data transfer
*
* @return builder
*
*/
public Builder routingPreference(RoutingPreferenceArgs routingPreference) {
return routingPreference(Output.of(routingPreference));
}
/**
* @param sasPolicy SasPolicy assigned to the storage account.
*
* @return builder
*
*/
public Builder sasPolicy(@Nullable Output sasPolicy) {
$.sasPolicy = sasPolicy;
return this;
}
/**
* @param sasPolicy SasPolicy assigned to the storage account.
*
* @return builder
*
*/
public Builder sasPolicy(SasPolicyArgs sasPolicy) {
return sasPolicy(Output.of(sasPolicy));
}
/**
* @param sku Required. Gets or sets the SKU name.
*
* @return builder
*
*/
public Builder sku(Output sku) {
$.sku = sku;
return this;
}
/**
* @param sku Required. Gets or sets the SKU name.
*
* @return builder
*
*/
public Builder sku(SkuArgs sku) {
return sku(Output.of(sku));
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param 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.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
public StorageAccountArgs build() {
if ($.kind == null) {
throw new MissingRequiredPropertyException("StorageAccountArgs", "kind");
}
if ($.resourceGroupName == null) {
throw new MissingRequiredPropertyException("StorageAccountArgs", "resourceGroupName");
}
if ($.sku == null) {
throw new MissingRequiredPropertyException("StorageAccountArgs", "sku");
}
return $;
}
}
}