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.netapp.VolumeArgs 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.netapp;
import com.pulumi.azurenative.netapp.enums.AvsDataStore;
import com.pulumi.azurenative.netapp.enums.EnableSubvolumes;
import com.pulumi.azurenative.netapp.enums.EncryptionKeySource;
import com.pulumi.azurenative.netapp.enums.NetworkFeatures;
import com.pulumi.azurenative.netapp.enums.SecurityStyle;
import com.pulumi.azurenative.netapp.enums.ServiceLevel;
import com.pulumi.azurenative.netapp.enums.SmbAccessBasedEnumeration;
import com.pulumi.azurenative.netapp.enums.SmbNonBrowsable;
import com.pulumi.azurenative.netapp.inputs.PlacementKeyValuePairsArgs;
import com.pulumi.azurenative.netapp.inputs.VolumePropertiesDataProtectionArgs;
import com.pulumi.azurenative.netapp.inputs.VolumePropertiesExportPolicyArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class VolumeArgs extends com.pulumi.resources.ResourceArgs {
public static final VolumeArgs Empty = new VolumeArgs();
/**
* The name of the NetApp account
*
*/
@Import(name="accountName", required=true)
private Output accountName;
/**
* @return The name of the NetApp account
*
*/
public Output accountName() {
return this.accountName;
}
/**
* Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose
*
*/
@Import(name="avsDataStore")
private @Nullable Output> avsDataStore;
/**
* @return Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose
*
*/
public Optional>> avsDataStore() {
return Optional.ofNullable(this.avsDataStore);
}
/**
* UUID v4 or resource identifier used to identify the Backup.
*
*/
@Import(name="backupId")
private @Nullable Output backupId;
/**
* @return UUID v4 or resource identifier used to identify the Backup.
*
*/
public Optional> backupId() {
return Optional.ofNullable(this.backupId);
}
/**
* Pool Resource Id used in case of creating a volume through volume group
*
*/
@Import(name="capacityPoolResourceId")
private @Nullable Output capacityPoolResourceId;
/**
* @return Pool Resource Id used in case of creating a volume through volume group
*
*/
public Optional> capacityPoolResourceId() {
return Optional.ofNullable(this.capacityPoolResourceId);
}
/**
* Specifies whether Cool Access(tiering) is enabled for the volume.
*
*/
@Import(name="coolAccess")
private @Nullable Output coolAccess;
/**
* @return Specifies whether Cool Access(tiering) is enabled for the volume.
*
*/
public Optional> coolAccess() {
return Optional.ofNullable(this.coolAccess);
}
/**
* Specifies the number of days after which data that is not accessed by clients will be tiered.
*
*/
@Import(name="coolnessPeriod")
private @Nullable Output coolnessPeriod;
/**
* @return Specifies the number of days after which data that is not accessed by clients will be tiered.
*
*/
public Optional> coolnessPeriod() {
return Optional.ofNullable(this.coolnessPeriod);
}
/**
* A unique file path for the volume. Used when creating mount targets
*
*/
@Import(name="creationToken", required=true)
private Output creationToken;
/**
* @return A unique file path for the volume. Used when creating mount targets
*
*/
public Output creationToken() {
return this.creationToken;
}
/**
* DataProtection type volumes include an object containing details of the replication
*
*/
@Import(name="dataProtection")
private @Nullable Output dataProtection;
/**
* @return DataProtection type volumes include an object containing details of the replication
*
*/
public Optional> dataProtection() {
return Optional.ofNullable(this.dataProtection);
}
/**
* Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies.
*
*/
@Import(name="defaultGroupQuotaInKiBs")
private @Nullable Output defaultGroupQuotaInKiBs;
/**
* @return Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies.
*
*/
public Optional> defaultGroupQuotaInKiBs() {
return Optional.ofNullable(this.defaultGroupQuotaInKiBs);
}
/**
* Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies .
*
*/
@Import(name="defaultUserQuotaInKiBs")
private @Nullable Output defaultUserQuotaInKiBs;
/**
* @return Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies .
*
*/
public Optional> defaultUserQuotaInKiBs() {
return Optional.ofNullable(this.defaultUserQuotaInKiBs);
}
/**
* If enabled (true) the snapshot the volume was created from will be automatically deleted after the volume create operation has finished. Defaults to false
*
*/
@Import(name="deleteBaseSnapshot")
private @Nullable Output deleteBaseSnapshot;
/**
* @return If enabled (true) the snapshot the volume was created from will be automatically deleted after the volume create operation has finished. Defaults to false
*
*/
public Optional> deleteBaseSnapshot() {
return Optional.ofNullable(this.deleteBaseSnapshot);
}
/**
* Flag indicating whether subvolume operations are enabled on the volume
*
*/
@Import(name="enableSubvolumes")
private @Nullable Output> enableSubvolumes;
/**
* @return Flag indicating whether subvolume operations are enabled on the volume
*
*/
public Optional>> enableSubvolumes() {
return Optional.ofNullable(this.enableSubvolumes);
}
/**
* Source of key used to encrypt data in volume. Applicable if NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'
*
*/
@Import(name="encryptionKeySource")
private @Nullable Output> encryptionKeySource;
/**
* @return Source of key used to encrypt data in volume. Applicable if NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'
*
*/
public Optional>> encryptionKeySource() {
return Optional.ofNullable(this.encryptionKeySource);
}
/**
* Set of export policy rules
*
*/
@Import(name="exportPolicy")
private @Nullable Output exportPolicy;
/**
* @return Set of export policy rules
*
*/
public Optional> exportPolicy() {
return Optional.ofNullable(this.exportPolicy);
}
/**
* Specifies if default quota is enabled for the volume.
*
*/
@Import(name="isDefaultQuotaEnabled")
private @Nullable Output isDefaultQuotaEnabled;
/**
* @return Specifies if default quota is enabled for the volume.
*
*/
public Optional> isDefaultQuotaEnabled() {
return Optional.ofNullable(this.isDefaultQuotaEnabled);
}
/**
* Specifies whether volume is a Large Volume or Regular Volume.
*
*/
@Import(name="isLargeVolume")
private @Nullable Output isLargeVolume;
/**
* @return Specifies whether volume is a Large Volume or Regular Volume.
*
*/
public Optional> isLargeVolume() {
return Optional.ofNullable(this.isLargeVolume);
}
/**
* Restoring
*
*/
@Import(name="isRestoring")
private @Nullable Output isRestoring;
/**
* @return Restoring
*
*/
public Optional> isRestoring() {
return Optional.ofNullable(this.isRestoring);
}
/**
* Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later
*
*/
@Import(name="kerberosEnabled")
private @Nullable Output kerberosEnabled;
/**
* @return Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later
*
*/
public Optional> kerberosEnabled() {
return Optional.ofNullable(this.kerberosEnabled);
}
/**
* The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'.
*
*/
@Import(name="keyVaultPrivateEndpointResourceId")
private @Nullable Output keyVaultPrivateEndpointResourceId;
/**
* @return The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'.
*
*/
public Optional> keyVaultPrivateEndpointResourceId() {
return Optional.ofNullable(this.keyVaultPrivateEndpointResourceId);
}
/**
* Specifies whether LDAP is enabled or not for a given NFS volume.
*
*/
@Import(name="ldapEnabled")
private @Nullable Output ldapEnabled;
/**
* @return Specifies whether LDAP is enabled or not for a given NFS volume.
*
*/
public Optional> ldapEnabled() {
return Optional.ofNullable(this.ldapEnabled);
}
/**
* The geo-location where the resource lives
*
*/
@Import(name="location")
private @Nullable Output location;
/**
* @return The geo-location where the resource lives
*
*/
public Optional> location() {
return Optional.ofNullable(this.location);
}
/**
* Basic network, or Standard features available to the volume.
*
*/
@Import(name="networkFeatures")
private @Nullable Output> networkFeatures;
/**
* @return Basic network, or Standard features available to the volume.
*
*/
public Optional>> networkFeatures() {
return Optional.ofNullable(this.networkFeatures);
}
/**
* Application specific placement rules for the particular volume
*
*/
@Import(name="placementRules")
private @Nullable Output> placementRules;
/**
* @return Application specific placement rules for the particular volume
*
*/
public Optional>> placementRules() {
return Optional.ofNullable(this.placementRules);
}
/**
* The name of the capacity pool
*
*/
@Import(name="poolName", required=true)
private Output poolName;
/**
* @return The name of the capacity pool
*
*/
public Output poolName() {
return this.poolName;
}
/**
* Set of protocol types, default NFSv3, CIFS for SMB protocol
*
*/
@Import(name="protocolTypes")
private @Nullable Output> protocolTypes;
/**
* @return Set of protocol types, default NFSv3, CIFS for SMB protocol
*
*/
public Optional>> protocolTypes() {
return Optional.ofNullable(this.protocolTypes);
}
/**
* Proximity placement group associated with the volume
*
*/
@Import(name="proximityPlacementGroup")
private @Nullable Output proximityPlacementGroup;
/**
* @return Proximity placement group associated with the volume
*
*/
public Optional> proximityPlacementGroup() {
return Optional.ofNullable(this.proximityPlacementGroup);
}
/**
* The name of the resource group. The name is case insensitive.
*
*/
@Import(name="resourceGroupName", required=true)
private Output resourceGroupName;
/**
* @return The name of the resource group. The name is case insensitive.
*
*/
public Output resourceGroupName() {
return this.resourceGroupName;
}
/**
* The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol
*
*/
@Import(name="securityStyle")
private @Nullable Output> securityStyle;
/**
* @return The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol
*
*/
public Optional>> securityStyle() {
return Optional.ofNullable(this.securityStyle);
}
/**
* The service level of the file system
*
*/
@Import(name="serviceLevel")
private @Nullable Output> serviceLevel;
/**
* @return The service level of the file system
*
*/
public Optional>> serviceLevel() {
return Optional.ofNullable(this.serviceLevel);
}
/**
* Enables access based enumeration share property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
*/
@Import(name="smbAccessBasedEnumeration")
private @Nullable Output> smbAccessBasedEnumeration;
/**
* @return Enables access based enumeration share property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
*/
public Optional>> smbAccessBasedEnumeration() {
return Optional.ofNullable(this.smbAccessBasedEnumeration);
}
/**
* Enables continuously available share property for smb volume. Only applicable for SMB volume
*
*/
@Import(name="smbContinuouslyAvailable")
private @Nullable Output smbContinuouslyAvailable;
/**
* @return Enables continuously available share property for smb volume. Only applicable for SMB volume
*
*/
public Optional> smbContinuouslyAvailable() {
return Optional.ofNullable(this.smbContinuouslyAvailable);
}
/**
* Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later
*
*/
@Import(name="smbEncryption")
private @Nullable Output smbEncryption;
/**
* @return Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later
*
*/
public Optional> smbEncryption() {
return Optional.ofNullable(this.smbEncryption);
}
/**
* Enables non browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
*/
@Import(name="smbNonBrowsable")
private @Nullable Output> smbNonBrowsable;
/**
* @return Enables non browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
*/
public Optional>> smbNonBrowsable() {
return Optional.ofNullable(this.smbNonBrowsable);
}
/**
* If enabled (true) the volume will contain a read-only snapshot directory which provides access to each of the volume's snapshots (defaults to true).
*
*/
@Import(name="snapshotDirectoryVisible")
private @Nullable Output snapshotDirectoryVisible;
/**
* @return If enabled (true) the volume will contain a read-only snapshot directory which provides access to each of the volume's snapshots (defaults to true).
*
*/
public Optional> snapshotDirectoryVisible() {
return Optional.ofNullable(this.snapshotDirectoryVisible);
}
/**
* UUID v4 or resource identifier used to identify the Snapshot.
*
*/
@Import(name="snapshotId")
private @Nullable Output snapshotId;
/**
* @return UUID v4 or resource identifier used to identify the Snapshot.
*
*/
public Optional> snapshotId() {
return Optional.ofNullable(this.snapshotId);
}
/**
* The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes
*
*/
@Import(name="subnetId", required=true)
private Output subnetId;
/**
* @return The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes
*
*/
public Output subnetId() {
return this.subnetId;
}
/**
* Resource tags.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return Resource tags.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
@Import(name="throughputMibps")
private @Nullable Output throughputMibps;
public Optional> throughputMibps() {
return Optional.ofNullable(this.throughputMibps);
}
/**
* UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users.
*
*/
@Import(name="unixPermissions")
private @Nullable Output unixPermissions;
/**
* @return UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users.
*
*/
public Optional> unixPermissions() {
return Optional.ofNullable(this.unixPermissions);
}
/**
* Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB, 500Tib for LargeVolume. Specified in bytes.
*
*/
@Import(name="usageThreshold", required=true)
private Output usageThreshold;
/**
* @return Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB, 500Tib for LargeVolume. Specified in bytes.
*
*/
public Output usageThreshold() {
return this.usageThreshold;
}
/**
* The name of the volume
*
*/
@Import(name="volumeName")
private @Nullable Output volumeName;
/**
* @return The name of the volume
*
*/
public Optional> volumeName() {
return Optional.ofNullable(this.volumeName);
}
/**
* Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log
*
*/
@Import(name="volumeSpecName")
private @Nullable Output volumeSpecName;
/**
* @return Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log
*
*/
public Optional> volumeSpecName() {
return Optional.ofNullable(this.volumeSpecName);
}
/**
* What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection
*
*/
@Import(name="volumeType")
private @Nullable Output volumeType;
/**
* @return What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection
*
*/
public Optional> volumeType() {
return Optional.ofNullable(this.volumeType);
}
/**
* Availability Zone
*
*/
@Import(name="zones")
private @Nullable Output> zones;
/**
* @return Availability Zone
*
*/
public Optional>> zones() {
return Optional.ofNullable(this.zones);
}
private VolumeArgs() {}
private VolumeArgs(VolumeArgs $) {
this.accountName = $.accountName;
this.avsDataStore = $.avsDataStore;
this.backupId = $.backupId;
this.capacityPoolResourceId = $.capacityPoolResourceId;
this.coolAccess = $.coolAccess;
this.coolnessPeriod = $.coolnessPeriod;
this.creationToken = $.creationToken;
this.dataProtection = $.dataProtection;
this.defaultGroupQuotaInKiBs = $.defaultGroupQuotaInKiBs;
this.defaultUserQuotaInKiBs = $.defaultUserQuotaInKiBs;
this.deleteBaseSnapshot = $.deleteBaseSnapshot;
this.enableSubvolumes = $.enableSubvolumes;
this.encryptionKeySource = $.encryptionKeySource;
this.exportPolicy = $.exportPolicy;
this.isDefaultQuotaEnabled = $.isDefaultQuotaEnabled;
this.isLargeVolume = $.isLargeVolume;
this.isRestoring = $.isRestoring;
this.kerberosEnabled = $.kerberosEnabled;
this.keyVaultPrivateEndpointResourceId = $.keyVaultPrivateEndpointResourceId;
this.ldapEnabled = $.ldapEnabled;
this.location = $.location;
this.networkFeatures = $.networkFeatures;
this.placementRules = $.placementRules;
this.poolName = $.poolName;
this.protocolTypes = $.protocolTypes;
this.proximityPlacementGroup = $.proximityPlacementGroup;
this.resourceGroupName = $.resourceGroupName;
this.securityStyle = $.securityStyle;
this.serviceLevel = $.serviceLevel;
this.smbAccessBasedEnumeration = $.smbAccessBasedEnumeration;
this.smbContinuouslyAvailable = $.smbContinuouslyAvailable;
this.smbEncryption = $.smbEncryption;
this.smbNonBrowsable = $.smbNonBrowsable;
this.snapshotDirectoryVisible = $.snapshotDirectoryVisible;
this.snapshotId = $.snapshotId;
this.subnetId = $.subnetId;
this.tags = $.tags;
this.throughputMibps = $.throughputMibps;
this.unixPermissions = $.unixPermissions;
this.usageThreshold = $.usageThreshold;
this.volumeName = $.volumeName;
this.volumeSpecName = $.volumeSpecName;
this.volumeType = $.volumeType;
this.zones = $.zones;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(VolumeArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private VolumeArgs $;
public Builder() {
$ = new VolumeArgs();
}
public Builder(VolumeArgs defaults) {
$ = new VolumeArgs(Objects.requireNonNull(defaults));
}
/**
* @param accountName The name of the NetApp account
*
* @return builder
*
*/
public Builder accountName(Output accountName) {
$.accountName = accountName;
return this;
}
/**
* @param accountName The name of the NetApp account
*
* @return builder
*
*/
public Builder accountName(String accountName) {
return accountName(Output.of(accountName));
}
/**
* @param avsDataStore Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose
*
* @return builder
*
*/
public Builder avsDataStore(@Nullable Output> avsDataStore) {
$.avsDataStore = avsDataStore;
return this;
}
/**
* @param avsDataStore Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose
*
* @return builder
*
*/
public Builder avsDataStore(Either avsDataStore) {
return avsDataStore(Output.of(avsDataStore));
}
/**
* @param avsDataStore Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose
*
* @return builder
*
*/
public Builder avsDataStore(String avsDataStore) {
return avsDataStore(Either.ofLeft(avsDataStore));
}
/**
* @param avsDataStore Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose
*
* @return builder
*
*/
public Builder avsDataStore(AvsDataStore avsDataStore) {
return avsDataStore(Either.ofRight(avsDataStore));
}
/**
* @param backupId UUID v4 or resource identifier used to identify the Backup.
*
* @return builder
*
*/
public Builder backupId(@Nullable Output backupId) {
$.backupId = backupId;
return this;
}
/**
* @param backupId UUID v4 or resource identifier used to identify the Backup.
*
* @return builder
*
*/
public Builder backupId(String backupId) {
return backupId(Output.of(backupId));
}
/**
* @param capacityPoolResourceId Pool Resource Id used in case of creating a volume through volume group
*
* @return builder
*
*/
public Builder capacityPoolResourceId(@Nullable Output capacityPoolResourceId) {
$.capacityPoolResourceId = capacityPoolResourceId;
return this;
}
/**
* @param capacityPoolResourceId Pool Resource Id used in case of creating a volume through volume group
*
* @return builder
*
*/
public Builder capacityPoolResourceId(String capacityPoolResourceId) {
return capacityPoolResourceId(Output.of(capacityPoolResourceId));
}
/**
* @param coolAccess Specifies whether Cool Access(tiering) is enabled for the volume.
*
* @return builder
*
*/
public Builder coolAccess(@Nullable Output coolAccess) {
$.coolAccess = coolAccess;
return this;
}
/**
* @param coolAccess Specifies whether Cool Access(tiering) is enabled for the volume.
*
* @return builder
*
*/
public Builder coolAccess(Boolean coolAccess) {
return coolAccess(Output.of(coolAccess));
}
/**
* @param coolnessPeriod Specifies the number of days after which data that is not accessed by clients will be tiered.
*
* @return builder
*
*/
public Builder coolnessPeriod(@Nullable Output coolnessPeriod) {
$.coolnessPeriod = coolnessPeriod;
return this;
}
/**
* @param coolnessPeriod Specifies the number of days after which data that is not accessed by clients will be tiered.
*
* @return builder
*
*/
public Builder coolnessPeriod(Integer coolnessPeriod) {
return coolnessPeriod(Output.of(coolnessPeriod));
}
/**
* @param creationToken A unique file path for the volume. Used when creating mount targets
*
* @return builder
*
*/
public Builder creationToken(Output creationToken) {
$.creationToken = creationToken;
return this;
}
/**
* @param creationToken A unique file path for the volume. Used when creating mount targets
*
* @return builder
*
*/
public Builder creationToken(String creationToken) {
return creationToken(Output.of(creationToken));
}
/**
* @param dataProtection DataProtection type volumes include an object containing details of the replication
*
* @return builder
*
*/
public Builder dataProtection(@Nullable Output dataProtection) {
$.dataProtection = dataProtection;
return this;
}
/**
* @param dataProtection DataProtection type volumes include an object containing details of the replication
*
* @return builder
*
*/
public Builder dataProtection(VolumePropertiesDataProtectionArgs dataProtection) {
return dataProtection(Output.of(dataProtection));
}
/**
* @param defaultGroupQuotaInKiBs Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies.
*
* @return builder
*
*/
public Builder defaultGroupQuotaInKiBs(@Nullable Output defaultGroupQuotaInKiBs) {
$.defaultGroupQuotaInKiBs = defaultGroupQuotaInKiBs;
return this;
}
/**
* @param defaultGroupQuotaInKiBs Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies.
*
* @return builder
*
*/
public Builder defaultGroupQuotaInKiBs(Double defaultGroupQuotaInKiBs) {
return defaultGroupQuotaInKiBs(Output.of(defaultGroupQuotaInKiBs));
}
/**
* @param defaultUserQuotaInKiBs Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies .
*
* @return builder
*
*/
public Builder defaultUserQuotaInKiBs(@Nullable Output defaultUserQuotaInKiBs) {
$.defaultUserQuotaInKiBs = defaultUserQuotaInKiBs;
return this;
}
/**
* @param defaultUserQuotaInKiBs Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies .
*
* @return builder
*
*/
public Builder defaultUserQuotaInKiBs(Double defaultUserQuotaInKiBs) {
return defaultUserQuotaInKiBs(Output.of(defaultUserQuotaInKiBs));
}
/**
* @param deleteBaseSnapshot If enabled (true) the snapshot the volume was created from will be automatically deleted after the volume create operation has finished. Defaults to false
*
* @return builder
*
*/
public Builder deleteBaseSnapshot(@Nullable Output deleteBaseSnapshot) {
$.deleteBaseSnapshot = deleteBaseSnapshot;
return this;
}
/**
* @param deleteBaseSnapshot If enabled (true) the snapshot the volume was created from will be automatically deleted after the volume create operation has finished. Defaults to false
*
* @return builder
*
*/
public Builder deleteBaseSnapshot(Boolean deleteBaseSnapshot) {
return deleteBaseSnapshot(Output.of(deleteBaseSnapshot));
}
/**
* @param enableSubvolumes Flag indicating whether subvolume operations are enabled on the volume
*
* @return builder
*
*/
public Builder enableSubvolumes(@Nullable Output> enableSubvolumes) {
$.enableSubvolumes = enableSubvolumes;
return this;
}
/**
* @param enableSubvolumes Flag indicating whether subvolume operations are enabled on the volume
*
* @return builder
*
*/
public Builder enableSubvolumes(Either enableSubvolumes) {
return enableSubvolumes(Output.of(enableSubvolumes));
}
/**
* @param enableSubvolumes Flag indicating whether subvolume operations are enabled on the volume
*
* @return builder
*
*/
public Builder enableSubvolumes(String enableSubvolumes) {
return enableSubvolumes(Either.ofLeft(enableSubvolumes));
}
/**
* @param enableSubvolumes Flag indicating whether subvolume operations are enabled on the volume
*
* @return builder
*
*/
public Builder enableSubvolumes(EnableSubvolumes enableSubvolumes) {
return enableSubvolumes(Either.ofRight(enableSubvolumes));
}
/**
* @param encryptionKeySource Source of key used to encrypt data in volume. Applicable if NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'
*
* @return builder
*
*/
public Builder encryptionKeySource(@Nullable Output> encryptionKeySource) {
$.encryptionKeySource = encryptionKeySource;
return this;
}
/**
* @param encryptionKeySource Source of key used to encrypt data in volume. Applicable if NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'
*
* @return builder
*
*/
public Builder encryptionKeySource(Either encryptionKeySource) {
return encryptionKeySource(Output.of(encryptionKeySource));
}
/**
* @param encryptionKeySource Source of key used to encrypt data in volume. Applicable if NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'
*
* @return builder
*
*/
public Builder encryptionKeySource(String encryptionKeySource) {
return encryptionKeySource(Either.ofLeft(encryptionKeySource));
}
/**
* @param encryptionKeySource Source of key used to encrypt data in volume. Applicable if NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'
*
* @return builder
*
*/
public Builder encryptionKeySource(EncryptionKeySource encryptionKeySource) {
return encryptionKeySource(Either.ofRight(encryptionKeySource));
}
/**
* @param exportPolicy Set of export policy rules
*
* @return builder
*
*/
public Builder exportPolicy(@Nullable Output exportPolicy) {
$.exportPolicy = exportPolicy;
return this;
}
/**
* @param exportPolicy Set of export policy rules
*
* @return builder
*
*/
public Builder exportPolicy(VolumePropertiesExportPolicyArgs exportPolicy) {
return exportPolicy(Output.of(exportPolicy));
}
/**
* @param isDefaultQuotaEnabled Specifies if default quota is enabled for the volume.
*
* @return builder
*
*/
public Builder isDefaultQuotaEnabled(@Nullable Output isDefaultQuotaEnabled) {
$.isDefaultQuotaEnabled = isDefaultQuotaEnabled;
return this;
}
/**
* @param isDefaultQuotaEnabled Specifies if default quota is enabled for the volume.
*
* @return builder
*
*/
public Builder isDefaultQuotaEnabled(Boolean isDefaultQuotaEnabled) {
return isDefaultQuotaEnabled(Output.of(isDefaultQuotaEnabled));
}
/**
* @param isLargeVolume Specifies whether volume is a Large Volume or Regular Volume.
*
* @return builder
*
*/
public Builder isLargeVolume(@Nullable Output isLargeVolume) {
$.isLargeVolume = isLargeVolume;
return this;
}
/**
* @param isLargeVolume Specifies whether volume is a Large Volume or Regular Volume.
*
* @return builder
*
*/
public Builder isLargeVolume(Boolean isLargeVolume) {
return isLargeVolume(Output.of(isLargeVolume));
}
/**
* @param isRestoring Restoring
*
* @return builder
*
*/
public Builder isRestoring(@Nullable Output isRestoring) {
$.isRestoring = isRestoring;
return this;
}
/**
* @param isRestoring Restoring
*
* @return builder
*
*/
public Builder isRestoring(Boolean isRestoring) {
return isRestoring(Output.of(isRestoring));
}
/**
* @param kerberosEnabled Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later
*
* @return builder
*
*/
public Builder kerberosEnabled(@Nullable Output kerberosEnabled) {
$.kerberosEnabled = kerberosEnabled;
return this;
}
/**
* @param kerberosEnabled Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later
*
* @return builder
*
*/
public Builder kerberosEnabled(Boolean kerberosEnabled) {
return kerberosEnabled(Output.of(kerberosEnabled));
}
/**
* @param keyVaultPrivateEndpointResourceId The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'.
*
* @return builder
*
*/
public Builder keyVaultPrivateEndpointResourceId(@Nullable Output keyVaultPrivateEndpointResourceId) {
$.keyVaultPrivateEndpointResourceId = keyVaultPrivateEndpointResourceId;
return this;
}
/**
* @param keyVaultPrivateEndpointResourceId The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'.
*
* @return builder
*
*/
public Builder keyVaultPrivateEndpointResourceId(String keyVaultPrivateEndpointResourceId) {
return keyVaultPrivateEndpointResourceId(Output.of(keyVaultPrivateEndpointResourceId));
}
/**
* @param ldapEnabled Specifies whether LDAP is enabled or not for a given NFS volume.
*
* @return builder
*
*/
public Builder ldapEnabled(@Nullable Output ldapEnabled) {
$.ldapEnabled = ldapEnabled;
return this;
}
/**
* @param ldapEnabled Specifies whether LDAP is enabled or not for a given NFS volume.
*
* @return builder
*
*/
public Builder ldapEnabled(Boolean ldapEnabled) {
return ldapEnabled(Output.of(ldapEnabled));
}
/**
* @param location The geo-location where the resource lives
*
* @return builder
*
*/
public Builder location(@Nullable Output location) {
$.location = location;
return this;
}
/**
* @param location The geo-location where the resource lives
*
* @return builder
*
*/
public Builder location(String location) {
return location(Output.of(location));
}
/**
* @param networkFeatures Basic network, or Standard features available to the volume.
*
* @return builder
*
*/
public Builder networkFeatures(@Nullable Output> networkFeatures) {
$.networkFeatures = networkFeatures;
return this;
}
/**
* @param networkFeatures Basic network, or Standard features available to the volume.
*
* @return builder
*
*/
public Builder networkFeatures(Either networkFeatures) {
return networkFeatures(Output.of(networkFeatures));
}
/**
* @param networkFeatures Basic network, or Standard features available to the volume.
*
* @return builder
*
*/
public Builder networkFeatures(String networkFeatures) {
return networkFeatures(Either.ofLeft(networkFeatures));
}
/**
* @param networkFeatures Basic network, or Standard features available to the volume.
*
* @return builder
*
*/
public Builder networkFeatures(NetworkFeatures networkFeatures) {
return networkFeatures(Either.ofRight(networkFeatures));
}
/**
* @param placementRules Application specific placement rules for the particular volume
*
* @return builder
*
*/
public Builder placementRules(@Nullable Output> placementRules) {
$.placementRules = placementRules;
return this;
}
/**
* @param placementRules Application specific placement rules for the particular volume
*
* @return builder
*
*/
public Builder placementRules(List placementRules) {
return placementRules(Output.of(placementRules));
}
/**
* @param placementRules Application specific placement rules for the particular volume
*
* @return builder
*
*/
public Builder placementRules(PlacementKeyValuePairsArgs... placementRules) {
return placementRules(List.of(placementRules));
}
/**
* @param poolName The name of the capacity pool
*
* @return builder
*
*/
public Builder poolName(Output poolName) {
$.poolName = poolName;
return this;
}
/**
* @param poolName The name of the capacity pool
*
* @return builder
*
*/
public Builder poolName(String poolName) {
return poolName(Output.of(poolName));
}
/**
* @param protocolTypes Set of protocol types, default NFSv3, CIFS for SMB protocol
*
* @return builder
*
*/
public Builder protocolTypes(@Nullable Output> protocolTypes) {
$.protocolTypes = protocolTypes;
return this;
}
/**
* @param protocolTypes Set of protocol types, default NFSv3, CIFS for SMB protocol
*
* @return builder
*
*/
public Builder protocolTypes(List protocolTypes) {
return protocolTypes(Output.of(protocolTypes));
}
/**
* @param protocolTypes Set of protocol types, default NFSv3, CIFS for SMB protocol
*
* @return builder
*
*/
public Builder protocolTypes(String... protocolTypes) {
return protocolTypes(List.of(protocolTypes));
}
/**
* @param proximityPlacementGroup Proximity placement group associated with the volume
*
* @return builder
*
*/
public Builder proximityPlacementGroup(@Nullable Output proximityPlacementGroup) {
$.proximityPlacementGroup = proximityPlacementGroup;
return this;
}
/**
* @param proximityPlacementGroup Proximity placement group associated with the volume
*
* @return builder
*
*/
public Builder proximityPlacementGroup(String proximityPlacementGroup) {
return proximityPlacementGroup(Output.of(proximityPlacementGroup));
}
/**
* @param resourceGroupName The name of the resource group. The name is case insensitive.
*
* @return builder
*
*/
public Builder resourceGroupName(Output resourceGroupName) {
$.resourceGroupName = resourceGroupName;
return this;
}
/**
* @param resourceGroupName The name of the resource group. The name is case insensitive.
*
* @return builder
*
*/
public Builder resourceGroupName(String resourceGroupName) {
return resourceGroupName(Output.of(resourceGroupName));
}
/**
* @param securityStyle The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol
*
* @return builder
*
*/
public Builder securityStyle(@Nullable Output> securityStyle) {
$.securityStyle = securityStyle;
return this;
}
/**
* @param securityStyle The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol
*
* @return builder
*
*/
public Builder securityStyle(Either securityStyle) {
return securityStyle(Output.of(securityStyle));
}
/**
* @param securityStyle The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol
*
* @return builder
*
*/
public Builder securityStyle(String securityStyle) {
return securityStyle(Either.ofLeft(securityStyle));
}
/**
* @param securityStyle The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol
*
* @return builder
*
*/
public Builder securityStyle(SecurityStyle securityStyle) {
return securityStyle(Either.ofRight(securityStyle));
}
/**
* @param serviceLevel The service level of the file system
*
* @return builder
*
*/
public Builder serviceLevel(@Nullable Output> serviceLevel) {
$.serviceLevel = serviceLevel;
return this;
}
/**
* @param serviceLevel The service level of the file system
*
* @return builder
*
*/
public Builder serviceLevel(Either serviceLevel) {
return serviceLevel(Output.of(serviceLevel));
}
/**
* @param serviceLevel The service level of the file system
*
* @return builder
*
*/
public Builder serviceLevel(String serviceLevel) {
return serviceLevel(Either.ofLeft(serviceLevel));
}
/**
* @param serviceLevel The service level of the file system
*
* @return builder
*
*/
public Builder serviceLevel(ServiceLevel serviceLevel) {
return serviceLevel(Either.ofRight(serviceLevel));
}
/**
* @param smbAccessBasedEnumeration Enables access based enumeration share property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
* @return builder
*
*/
public Builder smbAccessBasedEnumeration(@Nullable Output> smbAccessBasedEnumeration) {
$.smbAccessBasedEnumeration = smbAccessBasedEnumeration;
return this;
}
/**
* @param smbAccessBasedEnumeration Enables access based enumeration share property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
* @return builder
*
*/
public Builder smbAccessBasedEnumeration(Either smbAccessBasedEnumeration) {
return smbAccessBasedEnumeration(Output.of(smbAccessBasedEnumeration));
}
/**
* @param smbAccessBasedEnumeration Enables access based enumeration share property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
* @return builder
*
*/
public Builder smbAccessBasedEnumeration(String smbAccessBasedEnumeration) {
return smbAccessBasedEnumeration(Either.ofLeft(smbAccessBasedEnumeration));
}
/**
* @param smbAccessBasedEnumeration Enables access based enumeration share property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
* @return builder
*
*/
public Builder smbAccessBasedEnumeration(SmbAccessBasedEnumeration smbAccessBasedEnumeration) {
return smbAccessBasedEnumeration(Either.ofRight(smbAccessBasedEnumeration));
}
/**
* @param smbContinuouslyAvailable Enables continuously available share property for smb volume. Only applicable for SMB volume
*
* @return builder
*
*/
public Builder smbContinuouslyAvailable(@Nullable Output smbContinuouslyAvailable) {
$.smbContinuouslyAvailable = smbContinuouslyAvailable;
return this;
}
/**
* @param smbContinuouslyAvailable Enables continuously available share property for smb volume. Only applicable for SMB volume
*
* @return builder
*
*/
public Builder smbContinuouslyAvailable(Boolean smbContinuouslyAvailable) {
return smbContinuouslyAvailable(Output.of(smbContinuouslyAvailable));
}
/**
* @param smbEncryption Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later
*
* @return builder
*
*/
public Builder smbEncryption(@Nullable Output smbEncryption) {
$.smbEncryption = smbEncryption;
return this;
}
/**
* @param smbEncryption Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later
*
* @return builder
*
*/
public Builder smbEncryption(Boolean smbEncryption) {
return smbEncryption(Output.of(smbEncryption));
}
/**
* @param smbNonBrowsable Enables non browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
* @return builder
*
*/
public Builder smbNonBrowsable(@Nullable Output> smbNonBrowsable) {
$.smbNonBrowsable = smbNonBrowsable;
return this;
}
/**
* @param smbNonBrowsable Enables non browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
* @return builder
*
*/
public Builder smbNonBrowsable(Either smbNonBrowsable) {
return smbNonBrowsable(Output.of(smbNonBrowsable));
}
/**
* @param smbNonBrowsable Enables non browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
* @return builder
*
*/
public Builder smbNonBrowsable(String smbNonBrowsable) {
return smbNonBrowsable(Either.ofLeft(smbNonBrowsable));
}
/**
* @param smbNonBrowsable Enables non browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume
*
* @return builder
*
*/
public Builder smbNonBrowsable(SmbNonBrowsable smbNonBrowsable) {
return smbNonBrowsable(Either.ofRight(smbNonBrowsable));
}
/**
* @param snapshotDirectoryVisible If enabled (true) the volume will contain a read-only snapshot directory which provides access to each of the volume's snapshots (defaults to true).
*
* @return builder
*
*/
public Builder snapshotDirectoryVisible(@Nullable Output snapshotDirectoryVisible) {
$.snapshotDirectoryVisible = snapshotDirectoryVisible;
return this;
}
/**
* @param snapshotDirectoryVisible If enabled (true) the volume will contain a read-only snapshot directory which provides access to each of the volume's snapshots (defaults to true).
*
* @return builder
*
*/
public Builder snapshotDirectoryVisible(Boolean snapshotDirectoryVisible) {
return snapshotDirectoryVisible(Output.of(snapshotDirectoryVisible));
}
/**
* @param snapshotId UUID v4 or resource identifier used to identify the Snapshot.
*
* @return builder
*
*/
public Builder snapshotId(@Nullable Output snapshotId) {
$.snapshotId = snapshotId;
return this;
}
/**
* @param snapshotId UUID v4 or resource identifier used to identify the Snapshot.
*
* @return builder
*
*/
public Builder snapshotId(String snapshotId) {
return snapshotId(Output.of(snapshotId));
}
/**
* @param subnetId The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes
*
* @return builder
*
*/
public Builder subnetId(Output subnetId) {
$.subnetId = subnetId;
return this;
}
/**
* @param subnetId The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes
*
* @return builder
*
*/
public Builder subnetId(String subnetId) {
return subnetId(Output.of(subnetId));
}
/**
* @param tags Resource tags.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags Resource tags.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
public Builder throughputMibps(@Nullable Output throughputMibps) {
$.throughputMibps = throughputMibps;
return this;
}
public Builder throughputMibps(Double throughputMibps) {
return throughputMibps(Output.of(throughputMibps));
}
/**
* @param unixPermissions UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users.
*
* @return builder
*
*/
public Builder unixPermissions(@Nullable Output unixPermissions) {
$.unixPermissions = unixPermissions;
return this;
}
/**
* @param unixPermissions UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users.
*
* @return builder
*
*/
public Builder unixPermissions(String unixPermissions) {
return unixPermissions(Output.of(unixPermissions));
}
/**
* @param usageThreshold Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB, 500Tib for LargeVolume. Specified in bytes.
*
* @return builder
*
*/
public Builder usageThreshold(Output usageThreshold) {
$.usageThreshold = usageThreshold;
return this;
}
/**
* @param usageThreshold Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB, 500Tib for LargeVolume. Specified in bytes.
*
* @return builder
*
*/
public Builder usageThreshold(Double usageThreshold) {
return usageThreshold(Output.of(usageThreshold));
}
/**
* @param volumeName The name of the volume
*
* @return builder
*
*/
public Builder volumeName(@Nullable Output volumeName) {
$.volumeName = volumeName;
return this;
}
/**
* @param volumeName The name of the volume
*
* @return builder
*
*/
public Builder volumeName(String volumeName) {
return volumeName(Output.of(volumeName));
}
/**
* @param volumeSpecName Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log
*
* @return builder
*
*/
public Builder volumeSpecName(@Nullable Output volumeSpecName) {
$.volumeSpecName = volumeSpecName;
return this;
}
/**
* @param volumeSpecName Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log
*
* @return builder
*
*/
public Builder volumeSpecName(String volumeSpecName) {
return volumeSpecName(Output.of(volumeSpecName));
}
/**
* @param volumeType What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection
*
* @return builder
*
*/
public Builder volumeType(@Nullable Output volumeType) {
$.volumeType = volumeType;
return this;
}
/**
* @param volumeType What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection
*
* @return builder
*
*/
public Builder volumeType(String volumeType) {
return volumeType(Output.of(volumeType));
}
/**
* @param zones Availability Zone
*
* @return builder
*
*/
public Builder zones(@Nullable Output> zones) {
$.zones = zones;
return this;
}
/**
* @param zones Availability Zone
*
* @return builder
*
*/
public Builder zones(List zones) {
return zones(Output.of(zones));
}
/**
* @param zones Availability Zone
*
* @return builder
*
*/
public Builder zones(String... zones) {
return zones(List.of(zones));
}
public VolumeArgs build() {
if ($.accountName == null) {
throw new MissingRequiredPropertyException("VolumeArgs", "accountName");
}
$.avsDataStore = Codegen.stringProp("avsDataStore").left(AvsDataStore.class).output().arg($.avsDataStore).def("Disabled").getNullable();
$.coolAccess = Codegen.booleanProp("coolAccess").output().arg($.coolAccess).def(false).getNullable();
if ($.creationToken == null) {
throw new MissingRequiredPropertyException("VolumeArgs", "creationToken");
}
$.defaultGroupQuotaInKiBs = Codegen.doubleProp("defaultGroupQuotaInKiBs").output().arg($.defaultGroupQuotaInKiBs).def(0e+00).getNullable();
$.defaultUserQuotaInKiBs = Codegen.doubleProp("defaultUserQuotaInKiBs").output().arg($.defaultUserQuotaInKiBs).def(0e+00).getNullable();
$.enableSubvolumes = Codegen.stringProp("enableSubvolumes").left(EnableSubvolumes.class).output().arg($.enableSubvolumes).def("Disabled").getNullable();
$.encryptionKeySource = Codegen.stringProp("encryptionKeySource").left(EncryptionKeySource.class).output().arg($.encryptionKeySource).def("Microsoft.NetApp").getNullable();
$.isDefaultQuotaEnabled = Codegen.booleanProp("isDefaultQuotaEnabled").output().arg($.isDefaultQuotaEnabled).def(false).getNullable();
$.isLargeVolume = Codegen.booleanProp("isLargeVolume").output().arg($.isLargeVolume).def(false).getNullable();
$.kerberosEnabled = Codegen.booleanProp("kerberosEnabled").output().arg($.kerberosEnabled).def(false).getNullable();
$.ldapEnabled = Codegen.booleanProp("ldapEnabled").output().arg($.ldapEnabled).def(false).getNullable();
$.networkFeatures = Codegen.stringProp("networkFeatures").left(NetworkFeatures.class).output().arg($.networkFeatures).def("Basic").getNullable();
if ($.poolName == null) {
throw new MissingRequiredPropertyException("VolumeArgs", "poolName");
}
if ($.resourceGroupName == null) {
throw new MissingRequiredPropertyException("VolumeArgs", "resourceGroupName");
}
$.securityStyle = Codegen.stringProp("securityStyle").left(SecurityStyle.class).output().arg($.securityStyle).def("unix").getNullable();
$.smbContinuouslyAvailable = Codegen.booleanProp("smbContinuouslyAvailable").output().arg($.smbContinuouslyAvailable).def(false).getNullable();
$.smbEncryption = Codegen.booleanProp("smbEncryption").output().arg($.smbEncryption).def(false).getNullable();
$.snapshotDirectoryVisible = Codegen.booleanProp("snapshotDirectoryVisible").output().arg($.snapshotDirectoryVisible).def(true).getNullable();
if ($.subnetId == null) {
throw new MissingRequiredPropertyException("VolumeArgs", "subnetId");
}
$.unixPermissions = Codegen.stringProp("unixPermissions").output().arg($.unixPermissions).def("0770").getNullable();
$.usageThreshold = Codegen.doubleProp("usageThreshold").output().arg($.usageThreshold).def(1.073741824e+11).require();
return $;
}
}
}