com.azure.resourcemanager.netapp.models.Volume Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-resourcemanager-netapp Show documentation
Show all versions of azure-resourcemanager-netapp Show documentation
This package contains Microsoft Azure SDK for NetAppFiles Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Microsoft NetApp Files Azure Resource Provider specification. Package tag package-2024-03.
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.
package com.azure.resourcemanager.netapp.models;
import com.azure.core.http.rest.PagedIterable;
import com.azure.core.management.Region;
import com.azure.core.management.SystemData;
import com.azure.core.util.Context;
import com.azure.resourcemanager.netapp.fluent.models.MountTargetProperties;
import com.azure.resourcemanager.netapp.fluent.models.VolumeInner;
import java.util.List;
import java.util.Map;
/**
* An immutable client-side representation of Volume.
*/
public interface Volume {
/**
* Gets the id property: Fully qualified resource Id for the resource.
*
* @return the id value.
*/
String id();
/**
* Gets the name property: The name of the resource.
*
* @return the name value.
*/
String name();
/**
* Gets the type property: The type of the resource.
*
* @return the type value.
*/
String type();
/**
* Gets the location property: The geo-location where the resource lives.
*
* @return the location value.
*/
String location();
/**
* Gets the tags property: Resource tags.
*
* @return the tags value.
*/
Map tags();
/**
* Gets the etag property: A unique read-only string that changes whenever the resource is updated.
*
* @return the etag value.
*/
String etag();
/**
* Gets the zones property: Availability Zone.
*
* @return the zones value.
*/
List zones();
/**
* Gets the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
*
* @return the systemData value.
*/
SystemData systemData();
/**
* Gets the fileSystemId property: Unique FileSystem Identifier.
*
* @return the fileSystemId value.
*/
String fileSystemId();
/**
* Gets the creationToken property: A unique file path for the volume. Used when creating mount targets.
*
* @return the creationToken value.
*/
String creationToken();
/**
* Gets the serviceLevel property: The service level of the file system.
*
* @return the serviceLevel value.
*/
ServiceLevel serviceLevel();
/**
* Gets the usageThreshold property: Maximum storage quota allowed for a file system in bytes. This is a soft quota
* used for alerting only. For regular volumes, valid values are in the range 50GiB to 100TiB. For large volumes,
* valid values are in the range 100TiB to 1PiB, and on an exceptional basis, from to 2400GiB to 2400TiB. Values
* expressed in bytes as multiples of 1 GiB.
*
* @return the usageThreshold value.
*/
long usageThreshold();
/**
* Gets the exportPolicy property: Set of export policy rules.
*
* @return the exportPolicy value.
*/
VolumePropertiesExportPolicy exportPolicy();
/**
* Gets the protocolTypes property: Set of protocol types, default NFSv3, CIFS for SMB protocol.
*
* @return the protocolTypes value.
*/
List protocolTypes();
/**
* Gets the provisioningState property: Azure lifecycle management.
*
* @return the provisioningState value.
*/
String provisioningState();
/**
* Gets the snapshotId property: Resource identifier used to identify the Snapshot.
*
* @return the snapshotId value.
*/
String snapshotId();
/**
* Gets the deleteBaseSnapshot property: 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 the deleteBaseSnapshot value.
*/
Boolean deleteBaseSnapshot();
/**
* Gets the backupId property: Resource identifier used to identify the Backup.
*
* @return the backupId value.
*/
String backupId();
/**
* Gets the baremetalTenantId property: Unique Baremetal Tenant Identifier.
*
* @return the baremetalTenantId value.
*/
String baremetalTenantId();
/**
* Gets the subnetId property: The Azure Resource URI for a delegated subnet. Must have the delegation
* Microsoft.NetApp/volumes.
*
* @return the subnetId value.
*/
String subnetId();
/**
* Gets the networkFeatures property: The original value of the network features type available to the volume at the
* time it was created.
*
* @return the networkFeatures value.
*/
NetworkFeatures networkFeatures();
/**
* Gets the effectiveNetworkFeatures property: The effective value of the network features type available to the
* volume, or current effective state of update.
*
* @return the effectiveNetworkFeatures value.
*/
NetworkFeatures effectiveNetworkFeatures();
/**
* Gets the networkSiblingSetId property: Network Sibling Set ID for the the group of volumes sharing networking
* resources.
*
* @return the networkSiblingSetId value.
*/
String networkSiblingSetId();
/**
* Gets the storageToNetworkProximity property: Provides storage to network proximity information for the volume.
*
* @return the storageToNetworkProximity value.
*/
VolumeStorageToNetworkProximity storageToNetworkProximity();
/**
* Gets the mountTargets property: List of mount targets.
*
* @return the mountTargets value.
*/
List mountTargets();
/**
* Gets the volumeType property: What type of volume is this. For destination volumes in Cross Region Replication,
* set type to DataProtection. For creating clone volume, set type to ShortTermClone.
*
* @return the volumeType value.
*/
String volumeType();
/**
* Gets the dataProtection property: DataProtection type volumes include an object containing details of the
* replication.
*
* @return the dataProtection value.
*/
VolumePropertiesDataProtection dataProtection();
/**
* Gets the acceptGrowCapacityPoolForShortTermCloneSplit property: While auto splitting the short term clone volume,
* if the parent pool does not have enough space to accommodate the volume after split, it will be automatically
* resized, which will lead to increased billing. To accept capacity pool size auto grow and create a short term
* clone volume, set the property as accepted.
*
* @return the acceptGrowCapacityPoolForShortTermCloneSplit value.
*/
AcceptGrowCapacityPoolForShortTermCloneSplit acceptGrowCapacityPoolForShortTermCloneSplit();
/**
* Gets the isRestoring property: Restoring.
*
* @return the isRestoring value.
*/
Boolean isRestoring();
/**
* Gets the snapshotDirectoryVisible property: 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 the snapshotDirectoryVisible value.
*/
Boolean snapshotDirectoryVisible();
/**
* Gets the kerberosEnabled property: Describe if a volume is KerberosEnabled. To be use with swagger version
* 2020-05-01 or later.
*
* @return the kerberosEnabled value.
*/
Boolean kerberosEnabled();
/**
* Gets the securityStyle property: The security style of volume, default unix, defaults to ntfs for dual protocol
* or CIFS protocol.
*
* @return the securityStyle value.
*/
SecurityStyle securityStyle();
/**
* Gets the smbEncryption property: 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 the smbEncryption value.
*/
Boolean smbEncryption();
/**
* Gets the smbAccessBasedEnumeration property: Enables access-based enumeration share property for SMB Shares. Only
* applicable for SMB/DualProtocol volume.
*
* @return the smbAccessBasedEnumeration value.
*/
SmbAccessBasedEnumeration smbAccessBasedEnumeration();
/**
* Gets the smbNonBrowsable property: Enables non-browsable property for SMB Shares. Only applicable for
* SMB/DualProtocol volume.
*
* @return the smbNonBrowsable value.
*/
SmbNonBrowsable smbNonBrowsable();
/**
* Gets the smbContinuouslyAvailable property: Enables continuously available share property for smb volume. Only
* applicable for SMB volume.
*
* @return the smbContinuouslyAvailable value.
*/
Boolean smbContinuouslyAvailable();
/**
* Gets the throughputMibps property: Maximum throughput in MiB/s that can be achieved by this volume and this will
* be accepted as input only for manual qosType volume.
*
* @return the throughputMibps value.
*/
Float throughputMibps();
/**
* Gets the actualThroughputMibps property: Actual throughput in MiB/s for auto qosType volumes calculated based on
* size and serviceLevel.
*
* @return the actualThroughputMibps value.
*/
Float actualThroughputMibps();
/**
* Gets the encryptionKeySource property: 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 the encryptionKeySource value.
*/
EncryptionKeySource encryptionKeySource();
/**
* Gets the keyVaultPrivateEndpointResourceId property: 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 the keyVaultPrivateEndpointResourceId value.
*/
String keyVaultPrivateEndpointResourceId();
/**
* Gets the ldapEnabled property: Specifies whether LDAP is enabled or not for a given NFS volume.
*
* @return the ldapEnabled value.
*/
Boolean ldapEnabled();
/**
* Gets the coolAccess property: Specifies whether Cool Access(tiering) is enabled for the volume.
*
* @return the coolAccess value.
*/
Boolean coolAccess();
/**
* Gets the coolnessPeriod property: Specifies the number of days after which data that is not accessed by clients
* will be tiered.
*
* @return the coolnessPeriod value.
*/
Integer coolnessPeriod();
/**
* Gets the coolAccessRetrievalPolicy property: coolAccessRetrievalPolicy determines the data retrieval behavior
* from the cool tier to standard storage based on the read pattern for cool access enabled volumes. The possible
* values for this field are:
* Default - Data will be pulled from cool tier to standard storage on random reads. This policy is the default.
* OnRead - All client-driven data read is pulled from cool tier to standard storage on both sequential and random
* reads.
* Never - No client-driven data is pulled from cool tier to standard storage.
*
* @return the coolAccessRetrievalPolicy value.
*/
CoolAccessRetrievalPolicy coolAccessRetrievalPolicy();
/**
* Gets the unixPermissions property: 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. Avoid passing null value for unixPermissions in volume update operation,
* As per the behavior, If Null value is passed then user-visible unixPermissions value will became null, and user
* will not be able to get unixPermissions value. On safer side, actual unixPermissions value on volume will remain
* as its last saved value only.
*
* @return the unixPermissions value.
*/
String unixPermissions();
/**
* Gets the cloneProgress property: When a volume is being restored from another volume's snapshot, will show the
* percentage completion of this cloning process. When this value is empty/null there is no cloning process
* currently happening on this volume. This value will update every 5 minutes during cloning.
*
* @return the cloneProgress value.
*/
Integer cloneProgress();
/**
* Gets the fileAccessLogs property: Flag indicating whether file access logs are enabled for the volume, based on
* active diagnostic settings present on the volume.
*
* @return the fileAccessLogs value.
*/
FileAccessLogs fileAccessLogs();
/**
* Gets the avsDataStore property: Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore
* purpose.
*
* @return the avsDataStore value.
*/
AvsDataStore avsDataStore();
/**
* Gets the dataStoreResourceId property: Data store resource unique identifier.
*
* @return the dataStoreResourceId value.
*/
List dataStoreResourceId();
/**
* Gets the isDefaultQuotaEnabled property: Specifies if default quota is enabled for the volume.
*
* @return the isDefaultQuotaEnabled value.
*/
Boolean isDefaultQuotaEnabled();
/**
* Gets the defaultUserQuotaInKiBs property: Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set,
* the minimum value of 4 KiBs applies .
*
* @return the defaultUserQuotaInKiBs value.
*/
Long defaultUserQuotaInKiBs();
/**
* Gets the defaultGroupQuotaInKiBs property: Default group quota for volume in KiBs. If isDefaultQuotaEnabled is
* set, the minimum value of 4 KiBs applies.
*
* @return the defaultGroupQuotaInKiBs value.
*/
Long defaultGroupQuotaInKiBs();
/**
* Gets the maximumNumberOfFiles property: Maximum number of files allowed. Needs a service request in order to be
* changed. Only allowed to be changed if volume quota is more than 4TiB.
*
* @return the maximumNumberOfFiles value.
*/
Long maximumNumberOfFiles();
/**
* Gets the volumeGroupName property: Volume Group Name.
*
* @return the volumeGroupName value.
*/
String volumeGroupName();
/**
* Gets the capacityPoolResourceId property: Pool Resource Id used in case of creating a volume through volume
* group.
*
* @return the capacityPoolResourceId value.
*/
String capacityPoolResourceId();
/**
* Gets the proximityPlacementGroup property: Proximity placement group associated with the volume.
*
* @return the proximityPlacementGroup value.
*/
String proximityPlacementGroup();
/**
* Gets the t2Network property: T2 network information.
*
* @return the t2Network value.
*/
String t2Network();
/**
* Gets the volumeSpecName property: Volume spec name is the application specific designation or identifier for the
* particular volume in a volume group for e.g. data, log.
*
* @return the volumeSpecName value.
*/
String volumeSpecName();
/**
* Gets the encrypted property: Specifies if the volume is encrypted or not. Only available on volumes created or
* updated after 2022-01-01.
*
* @return the encrypted value.
*/
Boolean encrypted();
/**
* Gets the placementRules property: Application specific placement rules for the particular volume.
*
* @return the placementRules value.
*/
List placementRules();
/**
* Gets the enableSubvolumes property: Flag indicating whether subvolume operations are enabled on the volume.
*
* @return the enableSubvolumes value.
*/
EnableSubvolumes enableSubvolumes();
/**
* Gets the provisionedAvailabilityZone property: The availability zone where the volume is provisioned. This refers
* to the logical availability zone where the volume resides.
*
* @return the provisionedAvailabilityZone value.
*/
String provisionedAvailabilityZone();
/**
* Gets the isLargeVolume property: Specifies whether volume is a Large Volume or Regular Volume.
*
* @return the isLargeVolume value.
*/
Boolean isLargeVolume();
/**
* Gets the originatingResourceId property: Id of the snapshot or backup that the volume is restored from.
*
* @return the originatingResourceId value.
*/
String originatingResourceId();
/**
* Gets the inheritedSizeInBytes property: Space shared by short term clone volume with parent volume in bytes.
*
* @return the inheritedSizeInBytes value.
*/
Long inheritedSizeInBytes();
/**
* Gets the language property: Language supported for volume.
*
* @return the language value.
*/
VolumeLanguage language();
/**
* Gets the region of the resource.
*
* @return the region of the resource.
*/
Region region();
/**
* Gets the name of the resource region.
*
* @return the name of the resource region.
*/
String regionName();
/**
* Gets the name of the resource group.
*
* @return the name of the resource group.
*/
String resourceGroupName();
/**
* Gets the inner com.azure.resourcemanager.netapp.fluent.models.VolumeInner object.
*
* @return the inner object.
*/
VolumeInner innerModel();
/**
* The entirety of the Volume definition.
*/
interface Definition extends DefinitionStages.Blank, DefinitionStages.WithLocation,
DefinitionStages.WithParentResource, DefinitionStages.WithCreationToken, DefinitionStages.WithUsageThreshold,
DefinitionStages.WithSubnetId, DefinitionStages.WithCreate {
}
/**
* The Volume definition stages.
*/
interface DefinitionStages {
/**
* The first stage of the Volume definition.
*/
interface Blank extends WithLocation {
}
/**
* The stage of the Volume definition allowing to specify location.
*/
interface WithLocation {
/**
* Specifies the region for the resource.
*
* @param location The geo-location where the resource lives.
* @return the next definition stage.
*/
WithParentResource withRegion(Region location);
/**
* Specifies the region for the resource.
*
* @param location The geo-location where the resource lives.
* @return the next definition stage.
*/
WithParentResource withRegion(String location);
}
/**
* The stage of the Volume definition allowing to specify parent resource.
*/
interface WithParentResource {
/**
* Specifies resourceGroupName, accountName, poolName.
*
* @param resourceGroupName The name of the resource group. The name is case insensitive.
* @param accountName The name of the NetApp account.
* @param poolName The name of the capacity pool.
* @return the next definition stage.
*/
WithCreationToken withExistingCapacityPool(String resourceGroupName, String accountName, String poolName);
}
/**
* The stage of the Volume definition allowing to specify creationToken.
*/
interface WithCreationToken {
/**
* Specifies the creationToken property: A unique file path for the volume. Used when creating mount
* targets.
*
* @param creationToken A unique file path for the volume. Used when creating mount targets.
* @return the next definition stage.
*/
WithUsageThreshold withCreationToken(String creationToken);
}
/**
* The stage of the Volume definition allowing to specify usageThreshold.
*/
interface WithUsageThreshold {
/**
* Specifies the usageThreshold property: Maximum storage quota allowed for a file system in bytes. This is
* a soft quota used for alerting only. For regular volumes, valid values are in the range 50GiB to 100TiB.
* For large volumes, valid values are in the range 100TiB to 1PiB, and on an exceptional basis, from to
* 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB..
*
* @param usageThreshold Maximum storage quota allowed for a file system in bytes. This is a soft quota used
* for alerting only. For regular volumes, valid values are in the range 50GiB to 100TiB. For large volumes,
* valid values are in the range 100TiB to 1PiB, and on an exceptional basis, from to 2400GiB to 2400TiB.
* Values expressed in bytes as multiples of 1 GiB.
* @return the next definition stage.
*/
WithSubnetId withUsageThreshold(long usageThreshold);
}
/**
* The stage of the Volume definition allowing to specify subnetId.
*/
interface WithSubnetId {
/**
* Specifies the subnetId property: The Azure Resource URI for a delegated subnet. Must have the delegation
* Microsoft.NetApp/volumes.
*
* @param subnetId The Azure Resource URI for a delegated subnet. Must have the delegation
* Microsoft.NetApp/volumes.
* @return the next definition stage.
*/
WithCreate withSubnetId(String subnetId);
}
/**
* The stage of the Volume definition which contains all the minimum required properties for the resource to be
* created, but also allows for any other optional properties to be specified.
*/
interface WithCreate extends DefinitionStages.WithTags, DefinitionStages.WithZones,
DefinitionStages.WithServiceLevel, DefinitionStages.WithExportPolicy, DefinitionStages.WithProtocolTypes,
DefinitionStages.WithSnapshotId, DefinitionStages.WithDeleteBaseSnapshot, DefinitionStages.WithBackupId,
DefinitionStages.WithNetworkFeatures, DefinitionStages.WithVolumeType, DefinitionStages.WithDataProtection,
DefinitionStages.WithAcceptGrowCapacityPoolForShortTermCloneSplit, DefinitionStages.WithIsRestoring,
DefinitionStages.WithSnapshotDirectoryVisible, DefinitionStages.WithKerberosEnabled,
DefinitionStages.WithSecurityStyle, DefinitionStages.WithSmbEncryption,
DefinitionStages.WithSmbAccessBasedEnumeration, DefinitionStages.WithSmbNonBrowsable,
DefinitionStages.WithSmbContinuouslyAvailable, DefinitionStages.WithThroughputMibps,
DefinitionStages.WithEncryptionKeySource, DefinitionStages.WithKeyVaultPrivateEndpointResourceId,
DefinitionStages.WithLdapEnabled, DefinitionStages.WithCoolAccess, DefinitionStages.WithCoolnessPeriod,
DefinitionStages.WithCoolAccessRetrievalPolicy, DefinitionStages.WithUnixPermissions,
DefinitionStages.WithAvsDataStore, DefinitionStages.WithIsDefaultQuotaEnabled,
DefinitionStages.WithDefaultUserQuotaInKiBs, DefinitionStages.WithDefaultGroupQuotaInKiBs,
DefinitionStages.WithCapacityPoolResourceId, DefinitionStages.WithProximityPlacementGroup,
DefinitionStages.WithVolumeSpecName, DefinitionStages.WithPlacementRules,
DefinitionStages.WithEnableSubvolumes, DefinitionStages.WithIsLargeVolume, DefinitionStages.WithLanguage {
/**
* Executes the create request.
*
* @return the created resource.
*/
Volume create();
/**
* Executes the create request.
*
* @param context The context to associate with this operation.
* @return the created resource.
*/
Volume create(Context context);
}
/**
* The stage of the Volume definition allowing to specify tags.
*/
interface WithTags {
/**
* Specifies the tags property: Resource tags..
*
* @param tags Resource tags.
* @return the next definition stage.
*/
WithCreate withTags(Map tags);
}
/**
* The stage of the Volume definition allowing to specify zones.
*/
interface WithZones {
/**
* Specifies the zones property: Availability Zone.
*
* @param zones Availability Zone.
* @return the next definition stage.
*/
WithCreate withZones(List zones);
}
/**
* The stage of the Volume definition allowing to specify serviceLevel.
*/
interface WithServiceLevel {
/**
* Specifies the serviceLevel property: The service level of the file system.
*
* @param serviceLevel The service level of the file system.
* @return the next definition stage.
*/
WithCreate withServiceLevel(ServiceLevel serviceLevel);
}
/**
* The stage of the Volume definition allowing to specify exportPolicy.
*/
interface WithExportPolicy {
/**
* Specifies the exportPolicy property: Set of export policy rules.
*
* @param exportPolicy Set of export policy rules.
* @return the next definition stage.
*/
WithCreate withExportPolicy(VolumePropertiesExportPolicy exportPolicy);
}
/**
* The stage of the Volume definition allowing to specify protocolTypes.
*/
interface WithProtocolTypes {
/**
* Specifies the protocolTypes property: Set of protocol types, default NFSv3, CIFS for SMB protocol.
*
* @param protocolTypes Set of protocol types, default NFSv3, CIFS for SMB protocol.
* @return the next definition stage.
*/
WithCreate withProtocolTypes(List protocolTypes);
}
/**
* The stage of the Volume definition allowing to specify snapshotId.
*/
interface WithSnapshotId {
/**
* Specifies the snapshotId property: Resource identifier used to identify the Snapshot..
*
* @param snapshotId Resource identifier used to identify the Snapshot.
* @return the next definition stage.
*/
WithCreate withSnapshotId(String snapshotId);
}
/**
* The stage of the Volume definition allowing to specify deleteBaseSnapshot.
*/
interface WithDeleteBaseSnapshot {
/**
* Specifies the deleteBaseSnapshot property: If enabled (true) the snapshot the volume was created from
* will be automatically deleted after the volume create operation has finished. Defaults to false.
*
* @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 the next definition stage.
*/
WithCreate withDeleteBaseSnapshot(Boolean deleteBaseSnapshot);
}
/**
* The stage of the Volume definition allowing to specify backupId.
*/
interface WithBackupId {
/**
* Specifies the backupId property: Resource identifier used to identify the Backup..
*
* @param backupId Resource identifier used to identify the Backup.
* @return the next definition stage.
*/
WithCreate withBackupId(String backupId);
}
/**
* The stage of the Volume definition allowing to specify networkFeatures.
*/
interface WithNetworkFeatures {
/**
* Specifies the networkFeatures property: The original value of the network features type available to the
* volume at the time it was created..
*
* @param networkFeatures The original value of the network features type available to the volume at the
* time it was created.
* @return the next definition stage.
*/
WithCreate withNetworkFeatures(NetworkFeatures networkFeatures);
}
/**
* The stage of the Volume definition allowing to specify volumeType.
*/
interface WithVolumeType {
/**
* Specifies the volumeType property: What type of volume is this. For destination volumes in Cross Region
* Replication, set type to DataProtection. For creating clone volume, set type to ShortTermClone.
*
* @param volumeType What type of volume is this. For destination volumes in Cross Region Replication, set
* type to DataProtection. For creating clone volume, set type to ShortTermClone.
* @return the next definition stage.
*/
WithCreate withVolumeType(String volumeType);
}
/**
* The stage of the Volume definition allowing to specify dataProtection.
*/
interface WithDataProtection {
/**
* Specifies the dataProtection property: DataProtection type volumes include an object containing details
* of the replication.
*
* @param dataProtection DataProtection type volumes include an object containing details of the
* replication.
* @return the next definition stage.
*/
WithCreate withDataProtection(VolumePropertiesDataProtection dataProtection);
}
/**
* The stage of the Volume definition allowing to specify acceptGrowCapacityPoolForShortTermCloneSplit.
*/
interface WithAcceptGrowCapacityPoolForShortTermCloneSplit {
/**
* Specifies the acceptGrowCapacityPoolForShortTermCloneSplit property: While auto splitting the short term
* clone volume, if the parent pool does not have enough space to accommodate the volume after split, it
* will be automatically resized, which will lead to increased billing. To accept capacity pool size auto
* grow and create a short term clone volume, set the property as accepted..
*
* @param acceptGrowCapacityPoolForShortTermCloneSplit While auto splitting the short term clone volume, if
* the parent pool does not have enough space to accommodate the volume after split, it will be
* automatically resized, which will lead to increased billing. To accept capacity pool size auto grow and
* create a short term clone volume, set the property as accepted.
* @return the next definition stage.
*/
WithCreate withAcceptGrowCapacityPoolForShortTermCloneSplit(
AcceptGrowCapacityPoolForShortTermCloneSplit acceptGrowCapacityPoolForShortTermCloneSplit);
}
/**
* The stage of the Volume definition allowing to specify isRestoring.
*/
interface WithIsRestoring {
/**
* Specifies the isRestoring property: Restoring.
*
* @param isRestoring Restoring.
* @return the next definition stage.
*/
WithCreate withIsRestoring(Boolean isRestoring);
}
/**
* The stage of the Volume definition allowing to specify snapshotDirectoryVisible.
*/
interface WithSnapshotDirectoryVisible {
/**
* Specifies the snapshotDirectoryVisible property: 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)..
*
* @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 the next definition stage.
*/
WithCreate withSnapshotDirectoryVisible(Boolean snapshotDirectoryVisible);
}
/**
* The stage of the Volume definition allowing to specify kerberosEnabled.
*/
interface WithKerberosEnabled {
/**
* Specifies the kerberosEnabled property: Describe if a volume is KerberosEnabled. To be use with swagger
* version 2020-05-01 or later.
*
* @param kerberosEnabled Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01
* or later.
* @return the next definition stage.
*/
WithCreate withKerberosEnabled(Boolean kerberosEnabled);
}
/**
* The stage of the Volume definition allowing to specify securityStyle.
*/
interface WithSecurityStyle {
/**
* Specifies the securityStyle property: The security style of volume, default unix, defaults to ntfs for
* dual protocol or CIFS protocol.
*
* @param securityStyle The security style of volume, default unix, defaults to ntfs for dual protocol or
* CIFS protocol.
* @return the next definition stage.
*/
WithCreate withSecurityStyle(SecurityStyle securityStyle);
}
/**
* The stage of the Volume definition allowing to specify smbEncryption.
*/
interface WithSmbEncryption {
/**
* Specifies the smbEncryption property: Enables encryption for in-flight smb3 data. Only applicable for
* SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later.
*
* @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 the next definition stage.
*/
WithCreate withSmbEncryption(Boolean smbEncryption);
}
/**
* The stage of the Volume definition allowing to specify smbAccessBasedEnumeration.
*/
interface WithSmbAccessBasedEnumeration {
/**
* Specifies the smbAccessBasedEnumeration property: Enables access-based enumeration share property for SMB
* Shares. Only applicable for SMB/DualProtocol volume.
*
* @param smbAccessBasedEnumeration Enables access-based enumeration share property for SMB Shares. Only
* applicable for SMB/DualProtocol volume.
* @return the next definition stage.
*/
WithCreate withSmbAccessBasedEnumeration(SmbAccessBasedEnumeration smbAccessBasedEnumeration);
}
/**
* The stage of the Volume definition allowing to specify smbNonBrowsable.
*/
interface WithSmbNonBrowsable {
/**
* Specifies the smbNonBrowsable property: Enables non-browsable property for SMB Shares. Only applicable
* for SMB/DualProtocol volume.
*
* @param smbNonBrowsable Enables non-browsable property for SMB Shares. Only applicable for
* SMB/DualProtocol volume.
* @return the next definition stage.
*/
WithCreate withSmbNonBrowsable(SmbNonBrowsable smbNonBrowsable);
}
/**
* The stage of the Volume definition allowing to specify smbContinuouslyAvailable.
*/
interface WithSmbContinuouslyAvailable {
/**
* Specifies the smbContinuouslyAvailable property: Enables continuously available share property for smb
* volume. Only applicable for SMB volume.
*
* @param smbContinuouslyAvailable Enables continuously available share property for smb volume. Only
* applicable for SMB volume.
* @return the next definition stage.
*/
WithCreate withSmbContinuouslyAvailable(Boolean smbContinuouslyAvailable);
}
/**
* The stage of the Volume definition allowing to specify throughputMibps.
*/
interface WithThroughputMibps {
/**
* Specifies the throughputMibps property: Maximum throughput in MiB/s that can be achieved by this volume
* and this will be accepted as input only for manual qosType volume.
*
* @param throughputMibps Maximum throughput in MiB/s that can be achieved by this volume and this will be
* accepted as input only for manual qosType volume.
* @return the next definition stage.
*/
WithCreate withThroughputMibps(Float throughputMibps);
}
/**
* The stage of the Volume definition allowing to specify encryptionKeySource.
*/
interface WithEncryptionKeySource {
/**
* Specifies the encryptionKeySource property: 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'.
*
* @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 the next definition stage.
*/
WithCreate withEncryptionKeySource(EncryptionKeySource encryptionKeySource);
}
/**
* The stage of the Volume definition allowing to specify keyVaultPrivateEndpointResourceId.
*/
interface WithKeyVaultPrivateEndpointResourceId {
/**
* Specifies the keyVaultPrivateEndpointResourceId property: The resource ID of private endpoint for
* KeyVault. It must reside in the same VNET as the volume. Only applicable if encryptionKeySource =
* 'Microsoft.KeyVault'..
*
* @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 the next definition stage.
*/
WithCreate withKeyVaultPrivateEndpointResourceId(String keyVaultPrivateEndpointResourceId);
}
/**
* The stage of the Volume definition allowing to specify ldapEnabled.
*/
interface WithLdapEnabled {
/**
* Specifies the ldapEnabled property: Specifies whether LDAP is enabled or not for a given NFS volume..
*
* @param ldapEnabled Specifies whether LDAP is enabled or not for a given NFS volume.
* @return the next definition stage.
*/
WithCreate withLdapEnabled(Boolean ldapEnabled);
}
/**
* The stage of the Volume definition allowing to specify coolAccess.
*/
interface WithCoolAccess {
/**
* Specifies the coolAccess property: Specifies whether Cool Access(tiering) is enabled for the volume..
*
* @param coolAccess Specifies whether Cool Access(tiering) is enabled for the volume.
* @return the next definition stage.
*/
WithCreate withCoolAccess(Boolean coolAccess);
}
/**
* The stage of the Volume definition allowing to specify coolnessPeriod.
*/
interface WithCoolnessPeriod {
/**
* Specifies the coolnessPeriod property: Specifies the number of days after which data that is not accessed
* by clients will be tiered..
*
* @param coolnessPeriod Specifies the number of days after which data that is not accessed by clients will
* be tiered.
* @return the next definition stage.
*/
WithCreate withCoolnessPeriod(Integer coolnessPeriod);
}
/**
* The stage of the Volume definition allowing to specify coolAccessRetrievalPolicy.
*/
interface WithCoolAccessRetrievalPolicy {
/**
* Specifies the coolAccessRetrievalPolicy property: coolAccessRetrievalPolicy determines the data retrieval
* behavior from the cool tier to standard storage based on the read pattern for cool access enabled
* volumes. The possible values for this field are:
* Default - Data will be pulled from cool tier to standard storage on random reads. This policy is the
* default.
* OnRead - All client-driven data read is pulled from cool tier to standard storage on both sequential and
* random reads.
* Never - No client-driven data is pulled from cool tier to standard storage..
*
* @param coolAccessRetrievalPolicy coolAccessRetrievalPolicy determines the data retrieval behavior from
* the cool tier to standard storage based on the read pattern for cool access enabled volumes. The possible
* values for this field are:
* Default - Data will be pulled from cool tier to standard storage on random reads. This policy is the
* default.
* OnRead - All client-driven data read is pulled from cool tier to standard storage on both sequential and
* random reads.
* Never - No client-driven data is pulled from cool tier to standard storage.
* @return the next definition stage.
*/
WithCreate withCoolAccessRetrievalPolicy(CoolAccessRetrievalPolicy coolAccessRetrievalPolicy);
}
/**
* The stage of the Volume definition allowing to specify unixPermissions.
*/
interface WithUnixPermissions {
/**
* Specifies the unixPermissions property: 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. Avoid passing null
* value for unixPermissions in volume update operation, As per the behavior, If Null value is passed then
* user-visible unixPermissions value will became null, and user will not be able to get unixPermissions
* value. On safer side, actual unixPermissions value on volume will remain as its last saved value only..
*
* @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. Avoid passing null value for
* unixPermissions in volume update operation, As per the behavior, If Null value is passed then
* user-visible unixPermissions value will became null, and user will not be able to get unixPermissions
* value. On safer side, actual unixPermissions value on volume will remain as its last saved value only.
* @return the next definition stage.
*/
WithCreate withUnixPermissions(String unixPermissions);
}
/**
* The stage of the Volume definition allowing to specify avsDataStore.
*/
interface WithAvsDataStore {
/**
* Specifies the avsDataStore property: Specifies whether the volume is enabled for Azure VMware Solution
* (AVS) datastore purpose.
*
* @param avsDataStore Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore
* purpose.
* @return the next definition stage.
*/
WithCreate withAvsDataStore(AvsDataStore avsDataStore);
}
/**
* The stage of the Volume definition allowing to specify isDefaultQuotaEnabled.
*/
interface WithIsDefaultQuotaEnabled {
/**
* Specifies the isDefaultQuotaEnabled property: Specifies if default quota is enabled for the volume..
*
* @param isDefaultQuotaEnabled Specifies if default quota is enabled for the volume.
* @return the next definition stage.
*/
WithCreate withIsDefaultQuotaEnabled(Boolean isDefaultQuotaEnabled);
}
/**
* The stage of the Volume definition allowing to specify defaultUserQuotaInKiBs.
*/
interface WithDefaultUserQuotaInKiBs {
/**
* Specifies the defaultUserQuotaInKiBs property: Default user quota for volume in KiBs. If
* isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies ..
*
* @param defaultUserQuotaInKiBs Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the
* minimum value of 4 KiBs applies .
* @return the next definition stage.
*/
WithCreate withDefaultUserQuotaInKiBs(Long defaultUserQuotaInKiBs);
}
/**
* The stage of the Volume definition allowing to specify defaultGroupQuotaInKiBs.
*/
interface WithDefaultGroupQuotaInKiBs {
/**
* Specifies the defaultGroupQuotaInKiBs property: Default group quota for volume in KiBs. If
* isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies..
*
* @param defaultGroupQuotaInKiBs Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set,
* the minimum value of 4 KiBs applies.
* @return the next definition stage.
*/
WithCreate withDefaultGroupQuotaInKiBs(Long defaultGroupQuotaInKiBs);
}
/**
* The stage of the Volume definition allowing to specify capacityPoolResourceId.
*/
interface WithCapacityPoolResourceId {
/**
* Specifies the capacityPoolResourceId property: Pool Resource Id used in case of creating a volume through
* volume group.
*
* @param capacityPoolResourceId Pool Resource Id used in case of creating a volume through volume group.
* @return the next definition stage.
*/
WithCreate withCapacityPoolResourceId(String capacityPoolResourceId);
}
/**
* The stage of the Volume definition allowing to specify proximityPlacementGroup.
*/
interface WithProximityPlacementGroup {
/**
* Specifies the proximityPlacementGroup property: Proximity placement group associated with the volume.
*
* @param proximityPlacementGroup Proximity placement group associated with the volume.
* @return the next definition stage.
*/
WithCreate withProximityPlacementGroup(String proximityPlacementGroup);
}
/**
* The stage of the Volume definition allowing to specify volumeSpecName.
*/
interface WithVolumeSpecName {
/**
* Specifies the volumeSpecName property: Volume spec name is the application specific designation or
* identifier for the particular volume in a volume group for e.g. data, log.
*
* @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 the next definition stage.
*/
WithCreate withVolumeSpecName(String volumeSpecName);
}
/**
* The stage of the Volume definition allowing to specify placementRules.
*/
interface WithPlacementRules {
/**
* Specifies the placementRules property: Application specific placement rules for the particular volume.
*
* @param placementRules Application specific placement rules for the particular volume.
* @return the next definition stage.
*/
WithCreate withPlacementRules(List placementRules);
}
/**
* The stage of the Volume definition allowing to specify enableSubvolumes.
*/
interface WithEnableSubvolumes {
/**
* Specifies the enableSubvolumes property: Flag indicating whether subvolume operations are enabled on the
* volume.
*
* @param enableSubvolumes Flag indicating whether subvolume operations are enabled on the volume.
* @return the next definition stage.
*/
WithCreate withEnableSubvolumes(EnableSubvolumes enableSubvolumes);
}
/**
* The stage of the Volume definition allowing to specify isLargeVolume.
*/
interface WithIsLargeVolume {
/**
* Specifies the isLargeVolume property: Specifies whether volume is a Large Volume or Regular Volume..
*
* @param isLargeVolume Specifies whether volume is a Large Volume or Regular Volume.
* @return the next definition stage.
*/
WithCreate withIsLargeVolume(Boolean isLargeVolume);
}
/**
* The stage of the Volume definition allowing to specify language.
*/
interface WithLanguage {
/**
* Specifies the language property: Language supported for volume..
*
* @param language Language supported for volume.
* @return the next definition stage.
*/
WithCreate withLanguage(VolumeLanguage language);
}
}
/**
* Begins update for the Volume resource.
*
* @return the stage of resource update.
*/
Volume.Update update();
/**
* The template for Volume update.
*/
interface Update extends UpdateStages.WithTags, UpdateStages.WithServiceLevel, UpdateStages.WithUsageThreshold,
UpdateStages.WithExportPolicy, UpdateStages.WithProtocolTypes, UpdateStages.WithThroughputMibps,
UpdateStages.WithDataProtection, UpdateStages.WithIsDefaultQuotaEnabled,
UpdateStages.WithDefaultUserQuotaInKiBs, UpdateStages.WithDefaultGroupQuotaInKiBs,
UpdateStages.WithUnixPermissions, UpdateStages.WithCoolAccess, UpdateStages.WithCoolnessPeriod,
UpdateStages.WithCoolAccessRetrievalPolicy, UpdateStages.WithSnapshotDirectoryVisible,
UpdateStages.WithSmbAccessBasedEnumeration, UpdateStages.WithSmbNonBrowsable {
/**
* Executes the update request.
*
* @return the updated resource.
*/
Volume apply();
/**
* Executes the update request.
*
* @param context The context to associate with this operation.
* @return the updated resource.
*/
Volume apply(Context context);
}
/**
* The Volume update stages.
*/
interface UpdateStages {
/**
* The stage of the Volume update allowing to specify tags.
*/
interface WithTags {
/**
* Specifies the tags property: Resource tags..
*
* @param tags Resource tags.
* @return the next definition stage.
*/
Update withTags(Map tags);
}
/**
* The stage of the Volume update allowing to specify serviceLevel.
*/
interface WithServiceLevel {
/**
* Specifies the serviceLevel property: The service level of the file system.
*
* @param serviceLevel The service level of the file system.
* @return the next definition stage.
*/
Update withServiceLevel(ServiceLevel serviceLevel);
}
/**
* The stage of the Volume update allowing to specify usageThreshold.
*/
interface WithUsageThreshold {
/**
* Specifies the usageThreshold property: Maximum storage quota allowed for a file system in bytes. This is
* a soft quota used for alerting only. For regular volumes, valid values are in the range 50GiB to 100TiB.
* For large volumes, valid values are in the range 100TiB to 1PiB, and on an exceptional basis, from to
* 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB..
*
* @param usageThreshold Maximum storage quota allowed for a file system in bytes. This is a soft quota used
* for alerting only. For regular volumes, valid values are in the range 50GiB to 100TiB. For large volumes,
* valid values are in the range 100TiB to 1PiB, and on an exceptional basis, from to 2400GiB to 2400TiB.
* Values expressed in bytes as multiples of 1 GiB.
* @return the next definition stage.
*/
Update withUsageThreshold(Long usageThreshold);
}
/**
* The stage of the Volume update allowing to specify exportPolicy.
*/
interface WithExportPolicy {
/**
* Specifies the exportPolicy property: Set of export policy rules.
*
* @param exportPolicy Set of export policy rules.
* @return the next definition stage.
*/
Update withExportPolicy(VolumePatchPropertiesExportPolicy exportPolicy);
}
/**
* The stage of the Volume update allowing to specify protocolTypes.
*/
interface WithProtocolTypes {
/**
* Specifies the protocolTypes property: Set of protocol types, default NFSv3, CIFS for SMB protocol.
*
* @param protocolTypes Set of protocol types, default NFSv3, CIFS for SMB protocol.
* @return the next definition stage.
*/
Update withProtocolTypes(List protocolTypes);
}
/**
* The stage of the Volume update allowing to specify throughputMibps.
*/
interface WithThroughputMibps {
/**
* Specifies the throughputMibps property: Maximum throughput in MiB/s that can be achieved by this volume
* and this will be accepted as input only for manual qosType volume.
*
* @param throughputMibps Maximum throughput in MiB/s that can be achieved by this volume and this will be
* accepted as input only for manual qosType volume.
* @return the next definition stage.
*/
Update withThroughputMibps(Float throughputMibps);
}
/**
* The stage of the Volume update allowing to specify dataProtection.
*/
interface WithDataProtection {
/**
* Specifies the dataProtection property: DataProtection type volumes include an object containing details
* of the replication.
*
* @param dataProtection DataProtection type volumes include an object containing details of the
* replication.
* @return the next definition stage.
*/
Update withDataProtection(VolumePatchPropertiesDataProtection dataProtection);
}
/**
* The stage of the Volume update allowing to specify isDefaultQuotaEnabled.
*/
interface WithIsDefaultQuotaEnabled {
/**
* Specifies the isDefaultQuotaEnabled property: Specifies if default quota is enabled for the volume..
*
* @param isDefaultQuotaEnabled Specifies if default quota is enabled for the volume.
* @return the next definition stage.
*/
Update withIsDefaultQuotaEnabled(Boolean isDefaultQuotaEnabled);
}
/**
* The stage of the Volume update allowing to specify defaultUserQuotaInKiBs.
*/
interface WithDefaultUserQuotaInKiBs {
/**
* Specifies the defaultUserQuotaInKiBs property: Default user quota for volume in KiBs. If
* isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies ..
*
* @param defaultUserQuotaInKiBs Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the
* minimum value of 4 KiBs applies .
* @return the next definition stage.
*/
Update withDefaultUserQuotaInKiBs(Long defaultUserQuotaInKiBs);
}
/**
* The stage of the Volume update allowing to specify defaultGroupQuotaInKiBs.
*/
interface WithDefaultGroupQuotaInKiBs {
/**
* Specifies the defaultGroupQuotaInKiBs property: Default group quota for volume in KiBs. If
* isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies..
*
* @param defaultGroupQuotaInKiBs Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set,
* the minimum value of 4 KiBs applies.
* @return the next definition stage.
*/
Update withDefaultGroupQuotaInKiBs(Long defaultGroupQuotaInKiBs);
}
/**
* The stage of the Volume update allowing to specify unixPermissions.
*/
interface WithUnixPermissions {
/**
* Specifies the unixPermissions property: 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..
*
* @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 the next definition stage.
*/
Update withUnixPermissions(String unixPermissions);
}
/**
* The stage of the Volume update allowing to specify coolAccess.
*/
interface WithCoolAccess {
/**
* Specifies the coolAccess property: Specifies whether Cool Access(tiering) is enabled for the volume..
*
* @param coolAccess Specifies whether Cool Access(tiering) is enabled for the volume.
* @return the next definition stage.
*/
Update withCoolAccess(Boolean coolAccess);
}
/**
* The stage of the Volume update allowing to specify coolnessPeriod.
*/
interface WithCoolnessPeriod {
/**
* Specifies the coolnessPeriod property: Specifies the number of days after which data that is not accessed
* by clients will be tiered..
*
* @param coolnessPeriod Specifies the number of days after which data that is not accessed by clients will
* be tiered.
* @return the next definition stage.
*/
Update withCoolnessPeriod(Integer coolnessPeriod);
}
/**
* The stage of the Volume update allowing to specify coolAccessRetrievalPolicy.
*/
interface WithCoolAccessRetrievalPolicy {
/**
* Specifies the coolAccessRetrievalPolicy property: coolAccessRetrievalPolicy determines the data retrieval
* behavior from the cool tier to standard storage based on the read pattern for cool access enabled
* volumes. The possible values for this field are:
* Default - Data will be pulled from cool tier to standard storage on random reads. This policy is the
* default.
* OnRead - All client-driven data read is pulled from cool tier to standard storage on both sequential and
* random reads.
* Never - No client-driven data is pulled from cool tier to standard storage..
*
* @param coolAccessRetrievalPolicy coolAccessRetrievalPolicy determines the data retrieval behavior from
* the cool tier to standard storage based on the read pattern for cool access enabled volumes. The possible
* values for this field are:
* Default - Data will be pulled from cool tier to standard storage on random reads. This policy is the
* default.
* OnRead - All client-driven data read is pulled from cool tier to standard storage on both sequential and
* random reads.
* Never - No client-driven data is pulled from cool tier to standard storage.
* @return the next definition stage.
*/
Update withCoolAccessRetrievalPolicy(CoolAccessRetrievalPolicy coolAccessRetrievalPolicy);
}
/**
* The stage of the Volume update allowing to specify snapshotDirectoryVisible.
*/
interface WithSnapshotDirectoryVisible {
/**
* Specifies the snapshotDirectoryVisible property: If enabled (true) the volume will contain a read-only
* snapshot directory which provides access to each of the volume's snapshots..
*
* @param snapshotDirectoryVisible If enabled (true) the volume will contain a read-only snapshot directory
* which provides access to each of the volume's snapshots.
* @return the next definition stage.
*/
Update withSnapshotDirectoryVisible(Boolean snapshotDirectoryVisible);
}
/**
* The stage of the Volume update allowing to specify smbAccessBasedEnumeration.
*/
interface WithSmbAccessBasedEnumeration {
/**
* Specifies the smbAccessBasedEnumeration property: Enables access-based enumeration share property for SMB
* Shares. Only applicable for SMB/DualProtocol volume.
*
* @param smbAccessBasedEnumeration Enables access-based enumeration share property for SMB Shares. Only
* applicable for SMB/DualProtocol volume.
* @return the next definition stage.
*/
Update withSmbAccessBasedEnumeration(SmbAccessBasedEnumeration smbAccessBasedEnumeration);
}
/**
* The stage of the Volume update allowing to specify smbNonBrowsable.
*/
interface WithSmbNonBrowsable {
/**
* Specifies the smbNonBrowsable property: Enables non-browsable property for SMB Shares. Only applicable
* for SMB/DualProtocol volume.
*
* @param smbNonBrowsable Enables non-browsable property for SMB Shares. Only applicable for
* SMB/DualProtocol volume.
* @return the next definition stage.
*/
Update withSmbNonBrowsable(SmbNonBrowsable smbNonBrowsable);
}
}
/**
* Refreshes the resource to sync with Azure.
*
* @return the refreshed resource.
*/
Volume refresh();
/**
* Refreshes the resource to sync with Azure.
*
* @param context The context to associate with this operation.
* @return the refreshed resource.
*/
Volume refresh(Context context);
/**
* Populate Availability Zone
*
* This operation will populate availability zone information for a volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return volume resource.
*/
Volume populateAvailabilityZone();
/**
* Populate Availability Zone
*
* This operation will populate availability zone information for a volume.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return volume resource.
*/
Volume populateAvailabilityZone(Context context);
/**
* Revert a volume to one of its snapshots
*
* Revert a volume to the snapshot specified in the body.
*
* @param body Object for snapshot to revert supplied in the body of the operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void revert(VolumeRevert body);
/**
* Revert a volume to one of its snapshots
*
* Revert a volume to the snapshot specified in the body.
*
* @param body Object for snapshot to revert supplied in the body of the operation.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void revert(VolumeRevert body, Context context);
/**
* Reset cifs password
*
* Reset cifs password from volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void resetCifsPassword();
/**
* Reset cifs password
*
* Reset cifs password from volume.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void resetCifsPassword(Context context);
/**
* Split clone from parent volume
*
* Split operation to convert clone volume to an independent volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void splitCloneFromParent();
/**
* Split clone from parent volume
*
* Split operation to convert clone volume to an independent volume.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void splitCloneFromParent(Context context);
/**
* Break file locks
*
* Break all the file locks on a volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void breakFileLocks();
/**
* Break file locks
*
* Break all the file locks on a volume.
*
* @param body Optional body to provide the ability to clear file locks with selected options.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void breakFileLocks(BreakFileLocksRequest body, Context context);
/**
* Get Group Id List for LDAP User
*
* Returns the list of group Ids for a specific LDAP User.
*
* @param body Returns group Id list for a specific LDAP user.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return group Id list for Ldap user.
*/
GetGroupIdListForLdapUserResponse listGetGroupIdListForLdapUser(GetGroupIdListForLdapUserRequest body);
/**
* Get Group Id List for LDAP User
*
* Returns the list of group Ids for a specific LDAP User.
*
* @param body Returns group Id list for a specific LDAP user.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return group Id list for Ldap user.
*/
GetGroupIdListForLdapUserResponse listGetGroupIdListForLdapUser(GetGroupIdListForLdapUserRequest body,
Context context);
/**
* Lists Quota Report for the volume
*
* Returns report of quotas for the volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return quota Report for volume.
*/
ListQuotaReportResponse listQuotaReport();
/**
* Lists Quota Report for the volume
*
* Returns report of quotas for the volume.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return quota Report for volume.
*/
ListQuotaReportResponse listQuotaReport(Context context);
/**
* Break volume replication
*
* Break the replication connection on the destination volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void breakReplication();
/**
* Break volume replication
*
* Break the replication connection on the destination volume.
*
* @param body Optional body to force break the replication.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void breakReplication(BreakReplicationRequest body, Context context);
/**
* Re-establish volume replication
*
* Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or policy-based
* snapshots.
*
* @param body body for the id of the source volume.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void reestablishReplication(ReestablishReplicationRequest body);
/**
* Re-establish volume replication
*
* Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or policy-based
* snapshots.
*
* @param body body for the id of the source volume.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void reestablishReplication(ReestablishReplicationRequest body, Context context);
/**
* List replications for volume
*
* List all replications for a specified volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return list Replications as paginated response with {@link PagedIterable}.
*/
PagedIterable listReplications();
/**
* List replications for volume
*
* List all replications for a specified volume.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return list Replications as paginated response with {@link PagedIterable}.
*/
PagedIterable listReplications(Context context);
/**
* Resync volume replication
*
* Resync the connection on the destination volume. If the operation is ran on the source volume it will
* reverse-resync the connection and sync from destination to source.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void resyncReplication();
/**
* Resync volume replication
*
* Resync the connection on the destination volume. If the operation is ran on the source volume it will
* reverse-resync the connection and sync from destination to source.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void resyncReplication(Context context);
/**
* Delete volume replication
*
* Delete the replication connection on the destination volume, and send release to the source replication.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void deleteReplication();
/**
* Delete volume replication
*
* Delete the replication connection on the destination volume, and send release to the source replication.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void deleteReplication(Context context);
/**
* Authorize source volume replication
*
* Authorize the replication connection on the source volume.
*
* @param body Authorize request object supplied in the body of the operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void authorizeReplication(AuthorizeRequest body);
/**
* Authorize source volume replication
*
* Authorize the replication connection on the source volume.
*
* @param body Authorize request object supplied in the body of the operation.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void authorizeReplication(AuthorizeRequest body, Context context);
/**
* ReInitialize volume replication
*
* Re-Initializes the replication connection on the destination volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void reInitializeReplication();
/**
* ReInitialize volume replication
*
* Re-Initializes the replication connection on the destination volume.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void reInitializeReplication(Context context);
/**
* Start Cluster peering
*
* Starts peering the external cluster for this migration volume.
*
* @param body Cluster peer request object supplied in the body of the operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return information about cluster peering process.
*/
ClusterPeerCommandResponse peerExternalCluster(PeerClusterForVolumeMigrationRequest body);
/**
* Start Cluster peering
*
* Starts peering the external cluster for this migration volume.
*
* @param body Cluster peer request object supplied in the body of the operation.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return information about cluster peering process.
*/
ClusterPeerCommandResponse peerExternalCluster(PeerClusterForVolumeMigrationRequest body, Context context);
/**
* Start migration process
*
* Starts SVM peering and returns a command to be run on the external ONTAP to accept it. Once the SVM have been
* peered a SnapMirror will be created.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return information about svm peering process.
*/
SvmPeerCommandResponse authorizeExternalReplication();
/**
* Start migration process
*
* Starts SVM peering and returns a command to be run on the external ONTAP to accept it. Once the SVM have been
* peered a SnapMirror will be created.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return information about svm peering process.
*/
SvmPeerCommandResponse authorizeExternalReplication(Context context);
/**
* Finalize migration process
*
* Finalizes the migration of an external volume by releasing the replication and breaking the external cluster
* peering if no other migration is active.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void finalizeExternalReplication();
/**
* Finalize migration process
*
* Finalizes the migration of an external volume by releasing the replication and breaking the external cluster
* peering if no other migration is active.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void finalizeExternalReplication(Context context);
/**
* Perform a replication transfer
*
* Performs an adhoc replication transfer on a volume with volumeType Migration.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void performReplicationTransfer();
/**
* Perform a replication transfer
*
* Performs an adhoc replication transfer on a volume with volumeType Migration.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void performReplicationTransfer(Context context);
/**
* Change pool for volume
*
* Moves volume to another pool.
*
* @param body Move volume to the pool supplied in the body of the operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void poolChange(PoolChangeRequest body);
/**
* Change pool for volume
*
* Moves volume to another pool.
*
* @param body Move volume to the pool supplied in the body of the operation.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void poolChange(PoolChangeRequest body, Context context);
/**
* Relocate volume
*
* Relocates volume to a new stamp.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void relocate();
/**
* Relocate volume
*
* Relocates volume to a new stamp.
*
* @param body Relocate volume request.
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void relocate(RelocateVolumeRequest body, Context context);
/**
* Finalize volume relocation
*
* Finalizes the relocation of the volume and cleans up the old volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void finalizeRelocation();
/**
* Finalize volume relocation
*
* Finalizes the relocation of the volume and cleans up the old volume.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void finalizeRelocation(Context context);
/**
* Revert volume relocation
*
* Reverts the volume relocation process, cleans up the new volume and starts using the former-existing volume.
*
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void revertRelocation();
/**
* Revert volume relocation
*
* Reverts the volume relocation process, cleans up the new volume and starts using the former-existing volume.
*
* @param context The context to associate with this operation.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
*/
void revertRelocation(Context context);
}