diff --git a/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md b/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md
index f3855b081e80..c09b2e2ce565 100644
--- a/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md
+++ b/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md
@@ -1,5 +1,20 @@
# Release History
+## 18.0.0b2 (2026-07-27)
+
+### Features Added
+
+ - Model `LdapConfiguration` added property `dns_servers`
+ - Model `LdapConfiguration` added property `group_dn`
+ - Model `LdapConfiguration` added property `ldap_port`
+ - Model `LdapConfiguration` added property `net_group_dn`
+ - Model `LdapConfiguration` added property `user_dn`
+ - Model `LdapConfigurationPatch` added property `dns_servers`
+ - Model `LdapConfigurationPatch` added property `group_dn`
+ - Model `LdapConfigurationPatch` added property `ldap_port`
+ - Model `LdapConfigurationPatch` added property `net_group_dn`
+ - Model `LdapConfigurationPatch` added property `user_dn`
+
## 17.1.0 (2026-07-22)
### Features Added
diff --git a/sdk/netapp/azure-mgmt-netapp/_metadata.json b/sdk/netapp/azure-mgmt-netapp/_metadata.json
index 6ae9f8ba3c5b..9e264bfd05bf 100644
--- a/sdk/netapp/azure-mgmt-netapp/_metadata.json
+++ b/sdk/netapp/azure-mgmt-netapp/_metadata.json
@@ -1,9 +1,9 @@
{
- "apiVersion": "2026-05-01",
+ "apiVersion": "2026-05-15-preview",
"apiVersions": {
- "Microsoft.NetApp": "2026-05-01"
+ "Microsoft.NetApp": "2026-05-15-preview"
},
- "commit": "7b08703f0340226430bd8838aad0d7ac4ab5a665",
+ "commit": "c97fe996d4a10f7d583b7951b07bd4b52b3a1be0",
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
"typespec_src": "specification/netapp/resource-manager/Microsoft.NetApp/NetApp",
"emitterVersion": "0.63.3",
diff --git a/sdk/netapp/azure-mgmt-netapp/api.md b/sdk/netapp/azure-mgmt-netapp/api.md
index e1ad822e0719..721eda1cd6e1 100644
--- a/sdk/netapp/azure-mgmt-netapp/api.md
+++ b/sdk/netapp/azure-mgmt-netapp/api.md
@@ -3,6 +3,7 @@ namespace azure.mgmt.netapp
class azure.mgmt.netapp.NetAppManagementClient: implements ContextManager
accounts: AccountsOperations
+ active_directory_configs: ActiveDirectoryConfigsOperations
backup_policies: BackupPoliciesOperations
backup_vaults: BackupVaultsOperations
backups: BackupsOperations
@@ -11,6 +12,14 @@ namespace azure.mgmt.netapp
backups_under_volume: BackupsUnderVolumeOperations
buckets: BucketsOperations
caches: CachesOperations
+ elastic_accounts: ElasticAccountsOperations
+ elastic_backup_policies: ElasticBackupPoliciesOperations
+ elastic_backup_vaults: ElasticBackupVaultsOperations
+ elastic_backups: ElasticBackupsOperations
+ elastic_capacity_pools: ElasticCapacityPoolsOperations
+ elastic_snapshot_policies: ElasticSnapshotPoliciesOperations
+ elastic_snapshots: ElasticSnapshotsOperations
+ elastic_volumes: ElasticVolumesOperations
net_app_resource: NetAppResourceOperations
net_app_resource_quota_limits: NetAppResourceQuotaLimitsOperations
net_app_resource_quota_limits_account: NetAppResourceQuotaLimitsAccountOperations
@@ -53,6 +62,7 @@ namespace azure.mgmt.netapp.aio
class azure.mgmt.netapp.aio.NetAppManagementClient: implements AsyncContextManager
accounts: AccountsOperations
+ active_directory_configs: ActiveDirectoryConfigsOperations
backup_policies: BackupPoliciesOperations
backup_vaults: BackupVaultsOperations
backups: BackupsOperations
@@ -61,6 +71,14 @@ namespace azure.mgmt.netapp.aio
backups_under_volume: BackupsUnderVolumeOperations
buckets: BucketsOperations
caches: CachesOperations
+ elastic_accounts: ElasticAccountsOperations
+ elastic_backup_policies: ElasticBackupPoliciesOperations
+ elastic_backup_vaults: ElasticBackupVaultsOperations
+ elastic_backups: ElasticBackupsOperations
+ elastic_capacity_pools: ElasticCapacityPoolsOperations
+ elastic_snapshot_policies: ElasticSnapshotPoliciesOperations
+ elastic_snapshots: ElasticSnapshotsOperations
+ elastic_volumes: ElasticVolumesOperations
net_app_resource: NetAppResourceOperations
net_app_resource_quota_limits: NetAppResourceQuotaLimitsOperations
net_app_resource_quota_limits_account: NetAppResourceQuotaLimitsAccountOperations
@@ -191,6 +209,15 @@ namespace azure.mgmt.netapp.aio.operations
**kwargs: Any
) -> AsyncLROPoller[GetKeyVaultStatusResponse]: ...
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2026-04-15-preview', params_added_on={'2026-04-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name']}, api_versions_list=['2026-04-15-preview', '2026-05-15-preview'])
+ async def begin_refresh_ldap_bind_password(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
+
@distributed_trace_async
async def begin_renew_credentials(
self,
@@ -284,6 +311,111 @@ namespace azure.mgmt.netapp.aio.operations
def list_by_subscription(self, **kwargs: Any) -> AsyncItemPaged[NetAppAccount]: ...
+ class azure.mgmt.netapp.aio.operations.ActiveDirectoryConfigsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: ActiveDirectoryConfig,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ActiveDirectoryConfig]: ...
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: ActiveDirectoryConfig,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ActiveDirectoryConfig]: ...
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ActiveDirectoryConfig]: ...
+
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'active_directory_config_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ async def begin_delete(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: ActiveDirectoryConfigUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ActiveDirectoryConfig]: ...
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: ActiveDirectoryConfigUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ActiveDirectoryConfig]: ...
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ActiveDirectoryConfig]: ...
+
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'active_directory_config_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ async def get(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ **kwargs: Any
+ ) -> ActiveDirectoryConfig: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_resource_group(
+ self,
+ resource_group_name: str,
+ **kwargs: Any
+ ) -> AsyncItemPaged[ActiveDirectoryConfig]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_subscription(self, **kwargs: Any) -> AsyncItemPaged[ActiveDirectoryConfig]: ...
+
+
class azure.mgmt.netapp.aio.operations.BackupPoliciesOperations:
def __init__(
@@ -825,7 +957,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> AsyncLROPoller[Bucket]: ...
@distributed_trace_async
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
async def begin_delete(
self,
resource_group_name: str,
@@ -879,7 +1011,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> AsyncLROPoller[None]: ...
@distributed_trace_async
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
async def begin_refresh_certificate(
self,
resource_group_name: str,
@@ -975,7 +1107,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> BucketGenerateCredentials: ...
@distributed_trace_async
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
async def get(
self,
resource_group_name: str,
@@ -987,7 +1119,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> Bucket: ...
@distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
def list(
self,
resource_group_name: str,
@@ -1046,7 +1178,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> AsyncLROPoller[Cache]: ...
@distributed_trace_async
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
async def begin_delete(
self,
resource_group_name: str,
@@ -1096,7 +1228,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> AsyncLROPoller[Cache]: ...
@distributed_trace_async
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
async def begin_reset_smb_password(
self,
resource_group_name: str,
@@ -1146,7 +1278,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> AsyncLROPoller[Cache]: ...
@distributed_trace_async
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
async def get(
self,
resource_group_name: str,
@@ -1157,7 +1289,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> Cache: ...
@distributed_trace
- @api_version_validation(method_added_on='2026-01-01', params_added_on={'2026-01-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'accept']}, api_versions_list=['2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2026-01-01', params_added_on={'2026-01-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'accept']}, api_versions_list=['2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
def list(
self,
resource_group_name: str,
@@ -1167,7 +1299,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> AsyncItemPaged[Cache]: ...
@distributed_trace_async
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
async def list_peering_passphrases(
self,
resource_group_name: str,
@@ -1178,7 +1310,7 @@ namespace azure.mgmt.netapp.aio.operations
) -> PeeringPassphrases: ...
- class azure.mgmt.netapp.aio.operations.NetAppResourceOperations:
+ class azure.mgmt.netapp.aio.operations.ElasticAccountsOperations:
def __init__(
self,
@@ -1187,192 +1319,213 @@ namespace azure.mgmt.netapp.aio.operations
) -> None: ...
@overload
- async def begin_update_network_sibling_set(
+ async def begin_create_or_update(
self,
- location: str,
- body: UpdateNetworkSiblingSetRequest,
+ resource_group_name: str,
+ account_name: str,
+ body: ElasticAccount,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[NetworkSiblingSet]: ...
+ ) -> AsyncLROPoller[ElasticAccount]: ...
@overload
- async def begin_update_network_sibling_set(
+ async def begin_create_or_update(
self,
- location: str,
- body: UpdateNetworkSiblingSetRequest,
+ resource_group_name: str,
+ account_name: str,
+ body: ElasticAccount,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[NetworkSiblingSet]: ...
+ ) -> AsyncLROPoller[ElasticAccount]: ...
@overload
- async def begin_update_network_sibling_set(
+ async def begin_create_or_update(
self,
- location: str,
+ resource_group_name: str,
+ account_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[NetworkSiblingSet]: ...
+ ) -> AsyncLROPoller[ElasticAccount]: ...
- @overload
- async def check_file_path_availability(
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ async def begin_delete(
self,
- location: str,
- body: FilePathAvailabilityRequest,
- *,
- content_type: str = "application/json",
+ resource_group_name: str,
+ account_name: str,
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> AsyncLROPoller[None]: ...
@overload
- async def check_file_path_availability(
+ async def begin_update(
self,
- location: str,
- body: FilePathAvailabilityRequest,
+ resource_group_name: str,
+ account_name: str,
+ body: ElasticAccountUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> AsyncLROPoller[ElasticAccount]: ...
@overload
- async def check_file_path_availability(
+ async def begin_update(
self,
- location: str,
- body: IO[bytes],
+ resource_group_name: str,
+ account_name: str,
+ body: ElasticAccountUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> AsyncLROPoller[ElasticAccount]: ...
@overload
- async def check_name_availability(
+ async def begin_update(
self,
- location: str,
- body: ResourceNameAvailabilityRequest,
+ resource_group_name: str,
+ account_name: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> AsyncLROPoller[ElasticAccount]: ...
- @overload
- async def check_name_availability(
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ async def get(
self,
- location: str,
- body: ResourceNameAvailabilityRequest,
- *,
- content_type: str = "application/json",
+ resource_group_name: str,
+ account_name: str,
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> ElasticAccount: ...
- @overload
- async def check_name_availability(
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_resource_group(
self,
- location: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
+ resource_group_name: str,
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> AsyncItemPaged[ElasticAccount]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_subscription(self, **kwargs: Any) -> AsyncItemPaged[ElasticAccount]: ...
+
+
+ class azure.mgmt.netapp.aio.operations.ElasticBackupPoliciesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
@overload
- async def check_quota_availability(
+ async def begin_create_or_update(
self,
- location: str,
- body: QuotaAvailabilityRequest,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: ElasticBackupPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> AsyncLROPoller[ElasticBackupPolicy]: ...
@overload
- async def check_quota_availability(
+ async def begin_create_or_update(
self,
- location: str,
- body: QuotaAvailabilityRequest,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: ElasticBackupPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> AsyncLROPoller[ElasticBackupPolicy]: ...
@overload
- async def check_quota_availability(
+ async def begin_create_or_update(
self,
- location: str,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ ) -> AsyncLROPoller[ElasticBackupPolicy]: ...
+
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_policy_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ async def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- async def query_network_sibling_set(
+ async def begin_update(
self,
- location: str,
- body: QueryNetworkSiblingSetRequest,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: ElasticBackupPolicyUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> NetworkSiblingSet: ...
+ ) -> AsyncLROPoller[ElasticBackupPolicy]: ...
@overload
- async def query_network_sibling_set(
+ async def begin_update(
self,
- location: str,
- body: QueryNetworkSiblingSetRequest,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: ElasticBackupPolicyUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> NetworkSiblingSet: ...
+ ) -> AsyncLROPoller[ElasticBackupPolicy]: ...
@overload
- async def query_network_sibling_set(
+ async def begin_update(
self,
- location: str,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> NetworkSiblingSet: ...
-
- @distributed_trace_async
- async def query_region_info(
- self,
- location: str,
- **kwargs: Any
- ) -> RegionInfo: ...
-
-
- class azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsAccountOperations:
-
- def __init__(
- self,
- *args,
- **kwargs
- ) -> None: ...
+ ) -> AsyncLROPoller[ElasticBackupPolicy]: ...
@distributed_trace_async
- @api_version_validation(method_added_on='2025-08-01', params_added_on={'2025-08-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'quota_limit_name', 'accept']}, api_versions_list=['2025-08-01', '2025-09-01', '2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_policy_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def get(
self,
resource_group_name: str,
account_name: str,
- quota_limit_name: str,
+ backup_policy_name: str,
**kwargs: Any
- ) -> QuotaItem: ...
+ ) -> ElasticBackupPolicy: ...
@distributed_trace
- @api_version_validation(method_added_on='2025-08-01', params_added_on={'2025-08-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-08-01', '2025-09-01', '2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def list(
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_account(
self,
resource_group_name: str,
account_name: str,
**kwargs: Any
- ) -> AsyncItemPaged[QuotaItem]: ...
+ ) -> AsyncItemPaged[ElasticBackupPolicy]: ...
- class azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsOperations:
+ class azure.mgmt.netapp.aio.operations.ElasticBackupVaultsOperations:
def __init__(
self,
@@ -1380,82 +1533,109 @@ namespace azure.mgmt.netapp.aio.operations
**kwargs
) -> None: ...
- @distributed_trace_async
- async def get(
+ @overload
+ async def begin_create_or_update(
self,
- location: str,
- quota_limit_name: str,
- **kwargs: Any
- ) -> QuotaItem: ...
-
- @distributed_trace
- def list(
- self,
- location: str,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: ElasticBackupVault,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncItemPaged[QuotaItem]: ...
+ ) -> AsyncLROPoller[ElasticBackupVault]: ...
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: ElasticBackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ElasticBackupVault]: ...
- class azure.mgmt.netapp.aio.operations.NetAppResourceRegionInfosOperations:
-
- def __init__(
+ @overload
+ async def begin_create_or_update(
self,
- *args,
- **kwargs
- ) -> None: ...
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ElasticBackupVault]: ...
@distributed_trace_async
- async def get(
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ async def begin_delete(
self,
- location: str,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
**kwargs: Any
- ) -> RegionInfoResource: ...
+ ) -> AsyncLROPoller[None]: ...
- @distributed_trace
- def list(
+ @overload
+ async def begin_update(
self,
- location: str,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: ElasticBackupVaultUpdate,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncItemPaged[RegionInfoResource]: ...
-
+ ) -> AsyncLROPoller[ElasticBackupVault]: ...
- class azure.mgmt.netapp.aio.operations.NetAppResourceUsagesOperations:
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: ElasticBackupVaultUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ElasticBackupVault]: ...
- def __init__(
+ @overload
+ async def begin_update(
self,
- *args,
- **kwargs
- ) -> None: ...
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ElasticBackupVault]: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def get(
self,
- location: str,
- usage_type: str,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
**kwargs: Any
- ) -> UsageResult: ...
+ ) -> ElasticBackupVault: ...
@distributed_trace
- def list(
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_account(
self,
- location: str,
+ resource_group_name: str,
+ account_name: str,
**kwargs: Any
- ) -> AsyncItemPaged[UsageResult]: ...
-
-
- class azure.mgmt.netapp.aio.operations.Operations:
-
- def __init__(
- self,
- *args,
- **kwargs
- ) -> None: ...
-
- @distributed_trace
- def list(self, **kwargs: Any) -> AsyncItemPaged[Operation]: ...
+ ) -> AsyncItemPaged[ElasticBackupVault]: ...
- class azure.mgmt.netapp.aio.operations.PoolsOperations:
+ class azure.mgmt.netapp.aio.operations.ElasticBackupsOperations:
def __init__(
self,
@@ -1468,43 +1648,48 @@ namespace azure.mgmt.netapp.aio.operations
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- body: CapacityPool,
+ backup_vault_name: str,
+ backup_name: str,
+ body: ElasticBackup,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[CapacityPool]: ...
+ ) -> AsyncLROPoller[ElasticBackup]: ...
@overload
async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- body: CapacityPool,
+ backup_vault_name: str,
+ backup_name: str,
+ body: ElasticBackup,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[CapacityPool]: ...
+ ) -> AsyncLROPoller[ElasticBackup]: ...
@overload
async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
+ backup_vault_name: str,
+ backup_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[CapacityPool]: ...
+ ) -> AsyncLROPoller[ElasticBackup]: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name', 'backup_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def begin_delete(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
+ backup_vault_name: str,
+ backup_name: str,
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@@ -1513,56 +1698,63 @@ namespace azure.mgmt.netapp.aio.operations
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- body: CapacityPoolPatch,
+ backup_vault_name: str,
+ backup_name: str,
+ body: ElasticBackup,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[CapacityPool]: ...
+ ) -> AsyncLROPoller[ElasticBackup]: ...
@overload
async def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- body: CapacityPoolPatch,
+ backup_vault_name: str,
+ backup_name: str,
+ body: ElasticBackup,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[CapacityPool]: ...
+ ) -> AsyncLROPoller[ElasticBackup]: ...
@overload
async def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
+ backup_vault_name: str,
+ backup_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[CapacityPool]: ...
+ ) -> AsyncLROPoller[ElasticBackup]: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name', 'backup_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def get(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
+ backup_vault_name: str,
+ backup_name: str,
**kwargs: Any
- ) -> CapacityPool: ...
+ ) -> ElasticBackup: ...
@distributed_trace
- def list(
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_vault(
self,
resource_group_name: str,
account_name: str,
+ backup_vault_name: str,
**kwargs: Any
- ) -> AsyncItemPaged[CapacityPool]: ...
+ ) -> AsyncItemPaged[ElasticBackup]: ...
- class azure.mgmt.netapp.aio.operations.RansomwareReportsOperations:
+ class azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations:
def __init__(
self,
@@ -1571,85 +1763,84 @@ namespace azure.mgmt.netapp.aio.operations
) -> None: ...
@overload
- async def begin_clear_suspects(
+ async def begin_change_zone(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
- body: RansomwareSuspectsClearRequest,
+ body: ChangeZoneRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
@overload
- async def begin_clear_suspects(
+ async def begin_change_zone(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
- body: RansomwareSuspectsClearRequest,
+ body: ChangeZoneRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
@overload
- async def begin_clear_suspects(
+ async def begin_change_zone(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
- @distributed_trace_async
- @api_version_validation(method_added_on='2025-12-01', params_added_on={'2025-12-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'ransomware_report_name', 'accept']}, api_versions_list=['2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- async def get(
+ @overload
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
+ body: ElasticCapacityPool,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> RansomwareReport: ...
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-01', params_added_on={'2025-12-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def list(
+ @overload
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
+ body: ElasticCapacityPool,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncItemPaged[RansomwareReport]: ...
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
-
- class azure.mgmt.netapp.aio.operations.SnapshotPoliciesOperations:
-
- def __init__(
+ @overload
+ async def begin_create_or_update(
self,
- *args,
- **kwargs
- ) -> None: ...
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def begin_delete(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
+ pool_name: str,
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@@ -1658,101 +1849,94 @@ namespace azure.mgmt.netapp.aio.operations
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: SnapshotPolicyPatch,
+ pool_name: str,
+ body: ElasticCapacityPoolUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[SnapshotPolicy]: ...
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
@overload
async def begin_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: SnapshotPolicyPatch,
+ pool_name: str,
+ body: ElasticCapacityPoolUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[SnapshotPolicy]: ...
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
@overload
async def begin_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
+ pool_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[SnapshotPolicy]: ...
+ ) -> AsyncLROPoller[ElasticCapacityPool]: ...
@overload
- async def create(
+ async def check_volume_file_path_availability(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: SnapshotPolicy,
+ pool_name: str,
+ body: CheckElasticVolumeFilePathAvailabilityRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> SnapshotPolicy: ...
+ ) -> CheckElasticResourceAvailabilityResponse: ...
@overload
- async def create(
+ async def check_volume_file_path_availability(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: SnapshotPolicy,
+ pool_name: str,
+ body: CheckElasticVolumeFilePathAvailabilityRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> SnapshotPolicy: ...
+ ) -> CheckElasticResourceAvailabilityResponse: ...
@overload
- async def create(
+ async def check_volume_file_path_availability(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
+ pool_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> SnapshotPolicy: ...
+ ) -> CheckElasticResourceAvailabilityResponse: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def get(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
+ pool_name: str,
**kwargs: Any
- ) -> SnapshotPolicy: ...
+ ) -> ElasticCapacityPool: ...
@distributed_trace
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> AsyncItemPaged[SnapshotPolicy]: ...
-
- @distributed_trace_async
- async def list_volumes(
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_account(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
**kwargs: Any
- ) -> SnapshotPolicyVolumeList: ...
+ ) -> AsyncItemPaged[ElasticCapacityPool]: ...
- class azure.mgmt.netapp.aio.operations.SnapshotsOperations:
+ class azure.mgmt.netapp.aio.operations.ElasticSnapshotPoliciesOperations:
def __init__(
self,
@@ -1761,165 +1945,118 @@ namespace azure.mgmt.netapp.aio.operations
) -> None: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Snapshot,
+ snapshot_policy_name: str,
+ body: ElasticSnapshotPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Snapshot]: ...
+ ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Snapshot,
+ snapshot_policy_name: str,
+ body: ElasticSnapshotPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Snapshot]: ...
+ ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
+ snapshot_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Snapshot]: ...
+ ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'snapshot_policy_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def begin_delete(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- **kwargs: Any
- ) -> AsyncLROPoller[None]: ...
-
- @overload
- async def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: SnapshotRestoreFiles,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> AsyncLROPoller[None]: ...
-
- @overload
- async def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: SnapshotRestoreFiles,
- *,
- content_type: str = "application/json",
+ snapshot_policy_name: str,
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@overload
- async def begin_restore_files(
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: IO[bytes],
+ snapshot_policy_name: str,
+ body: ElasticSnapshotPolicyUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ...
@overload
async def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: SnapshotPatch,
+ snapshot_policy_name: str,
+ body: ElasticSnapshotPolicyUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Snapshot]: ...
+ ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ...
@overload
async def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: SnapshotPatch,
+ snapshot_policy_name: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Snapshot]: ...
+ ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ...
- @overload
- async def begin_update(
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'snapshot_policy_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ async def get(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
+ snapshot_policy_name: str,
**kwargs: Any
- ) -> AsyncLROPoller[Snapshot]: ...
+ ) -> ElasticSnapshotPolicy: ...
- @distributed_trace_async
- async def get(
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_account(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
**kwargs: Any
- ) -> Snapshot: ...
+ ) -> AsyncItemPaged[ElasticSnapshotPolicy]: ...
@distributed_trace
- def list(
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'snapshot_policy_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_elastic_volumes(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ snapshot_policy_name: str,
**kwargs: Any
- ) -> AsyncItemPaged[Snapshot]: ...
+ ) -> AsyncItemPaged[ElasticVolume]: ...
- class azure.mgmt.netapp.aio.operations.SubvolumesOperations:
+ class azure.mgmt.netapp.aio.operations.ElasticSnapshotsOperations:
def __init__(
self,
@@ -1928,134 +2065,84 @@ namespace azure.mgmt.netapp.aio.operations
) -> None: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- subvolume_name: str,
- body: SubvolumeInfo,
+ snapshot_name: str,
+ body: ElasticSnapshot,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[SubvolumeInfo]: ...
+ ) -> AsyncLROPoller[ElasticSnapshot]: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- subvolume_name: str,
- body: SubvolumeInfo,
+ snapshot_name: str,
+ body: ElasticSnapshot,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[SubvolumeInfo]: ...
+ ) -> AsyncLROPoller[ElasticSnapshot]: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- subvolume_name: str,
+ snapshot_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[SubvolumeInfo]: ...
+ ) -> AsyncLROPoller[ElasticSnapshot]: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'snapshot_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def begin_delete(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- subvolume_name: str,
+ snapshot_name: str,
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@distributed_trace_async
- async def begin_get_metadata(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- **kwargs: Any
- ) -> AsyncLROPoller[SubvolumeModel]: ...
-
- @overload
- async def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: SubvolumePatchRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> AsyncLROPoller[SubvolumeInfo]: ...
-
- @overload
- async def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: SubvolumePatchRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> AsyncLROPoller[SubvolumeInfo]: ...
-
- @overload
- async def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> AsyncLROPoller[SubvolumeInfo]: ...
-
- @distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'snapshot_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def get(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- subvolume_name: str,
+ snapshot_name: str,
**kwargs: Any
- ) -> SubvolumeInfo: ...
+ ) -> ElasticSnapshot: ...
@distributed_trace
- def list_by_volume(
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_volume(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
**kwargs: Any
- ) -> AsyncItemPaged[SubvolumeInfo]: ...
+ ) -> AsyncItemPaged[ElasticSnapshot]: ...
- class azure.mgmt.netapp.aio.operations.VolumeGroupsOperations:
+ class azure.mgmt.netapp.aio.operations.ElasticVolumesOperations:
def __init__(
self,
@@ -2064,128 +2151,93 @@ namespace azure.mgmt.netapp.aio.operations
) -> None: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- volume_group_name: str,
- body: VolumeGroupDetails,
+ pool_name: str,
+ volume_name: str,
+ body: ElasticVolume,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeGroupDetails]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- volume_group_name: str,
- body: VolumeGroupDetails,
+ pool_name: str,
+ volume_name: str,
+ body: ElasticVolume,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeGroupDetails]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@overload
- async def begin_create(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- volume_group_name: str,
+ pool_name: str,
+ volume_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeGroupDetails]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def begin_delete(
self,
resource_group_name: str,
account_name: str,
- volume_group_name: str,
+ pool_name: str,
+ volume_name: str,
**kwargs: Any
) -> AsyncLROPoller[None]: ...
- @distributed_trace_async
- async def get(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- **kwargs: Any
- ) -> VolumeGroupDetails: ...
-
- @distributed_trace
- def list_by_net_app_account(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> AsyncItemPaged[VolumeGroup]: ...
-
-
- class azure.mgmt.netapp.aio.operations.VolumeQuotaRulesOperations:
-
- def __init__(
- self,
- *args,
- **kwargs
- ) -> None: ...
-
@overload
- async def begin_create(
+ async def begin_revert(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
- body: VolumeQuotaRule,
+ body: ElasticVolumeRevert,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeQuotaRule]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@overload
- async def begin_create(
+ async def begin_revert(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
- body: VolumeQuotaRule,
+ body: ElasticVolumeRevert,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeQuotaRule]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@overload
- async def begin_create(
+ async def begin_revert(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeQuotaRule]: ...
-
- @distributed_trace_async
- async def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- **kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@overload
async def begin_update(
@@ -2194,12 +2246,11 @@ namespace azure.mgmt.netapp.aio.operations
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
- body: VolumeQuotaRulePatch,
+ body: ElasticVolumeUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeQuotaRule]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@overload
async def begin_update(
@@ -2208,12 +2259,11 @@ namespace azure.mgmt.netapp.aio.operations
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
- body: VolumeQuotaRulePatch,
+ body: ElasticVolumeUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeQuotaRule]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@overload
async def begin_update(
@@ -2222,36 +2272,35 @@ namespace azure.mgmt.netapp.aio.operations
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[VolumeQuotaRule]: ...
+ ) -> AsyncLROPoller[ElasticVolume]: ...
@distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
async def get(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
**kwargs: Any
- ) -> VolumeQuotaRule: ...
+ ) -> ElasticVolume: ...
@distributed_trace
- def list_by_volume(
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_pool(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
**kwargs: Any
- ) -> AsyncItemPaged[VolumeQuotaRule]: ...
+ ) -> AsyncItemPaged[ElasticVolume]: ...
- class azure.mgmt.netapp.aio.operations.VolumesOperations:
+ class azure.mgmt.netapp.aio.operations.NetAppResourceOperations:
def __init__(
self,
@@ -2259,1962 +2308,2130 @@ namespace azure.mgmt.netapp.aio.operations
**kwargs
) -> None: ...
- @distributed_trace_async
- async def begin_authorize_external_replication(
+ @overload
+ async def begin_update_network_sibling_set(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
+ location: str,
+ body: UpdateNetworkSiblingSetRequest,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[SvmPeerCommandResponse]: ...
+ ) -> AsyncLROPoller[NetworkSiblingSet]: ...
@overload
- async def begin_authorize_replication(
+ async def begin_update_network_sibling_set(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: AuthorizeRequest,
+ location: str,
+ body: UpdateNetworkSiblingSetRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[NetworkSiblingSet]: ...
@overload
- async def begin_authorize_replication(
+ async def begin_update_network_sibling_set(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: AuthorizeRequest,
+ location: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[NetworkSiblingSet]: ...
@overload
- async def begin_authorize_replication(
+ async def check_file_path_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
+ location: str,
+ body: FilePathAvailabilityRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_break_file_locks(
+ async def check_file_path_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[BreakFileLocksRequest] = None,
+ location: str,
+ body: FilePathAvailabilityRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_break_file_locks(
+ async def check_file_path_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[BreakFileLocksRequest] = None,
+ location: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_break_file_locks(
+ async def check_name_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
+ location: str,
+ body: ResourceNameAvailabilityRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_break_replication(
+ async def check_name_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[BreakReplicationRequest] = None,
+ location: str,
+ body: ResourceNameAvailabilityRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_break_replication(
+ async def check_name_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[BreakReplicationRequest] = None,
+ location: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_break_replication(
+ async def check_quota_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
+ location: str,
+ body: QuotaAvailabilityRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_create_or_update(
+ async def check_quota_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Volume,
+ location: str,
+ body: QuotaAvailabilityRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Volume]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_create_or_update(
+ async def check_quota_availability(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Volume,
+ location: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Volume]: ...
+ ) -> CheckAvailabilityResponse: ...
@overload
- async def begin_create_or_update(
+ async def query_network_sibling_set(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
+ location: str,
+ body: QueryNetworkSiblingSetRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Volume]: ...
+ ) -> NetworkSiblingSet: ...
- @distributed_trace_async
- async def begin_delete(
+ @overload
+ async def query_network_sibling_set(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
+ location: str,
+ body: QueryNetworkSiblingSetRequest,
*,
- force_delete: Optional[bool] = ...,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> NetworkSiblingSet: ...
- @distributed_trace_async
- async def begin_delete_replication(
+ @overload
+ async def query_network_sibling_set(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
+ location: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> NetworkSiblingSet: ...
@distributed_trace_async
- async def begin_finalize_external_replication(
+ async def query_region_info(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
+ location: str,
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> RegionInfo: ...
- @distributed_trace_async
- async def begin_finalize_relocation(
+
+ class azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsAccountOperations:
+
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ *args,
+ **kwargs
+ ) -> None: ...
- @overload
- async def begin_list_get_group_id_list_for_ldap_user(
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2025-08-01', params_added_on={'2025-08-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'quota_limit_name', 'accept']}, api_versions_list=['2025-08-01', '2025-09-01', '2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ async def get(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: GetGroupIdListForLDAPUserRequest,
- *,
- content_type: str = "application/json",
+ quota_limit_name: str,
**kwargs: Any
- ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ...
+ ) -> QuotaItem: ...
- @overload
- async def begin_list_get_group_id_list_for_ldap_user(
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-08-01', params_added_on={'2025-08-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-08-01', '2025-09-01', '2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def list(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: GetGroupIdListForLDAPUserRequest,
- *,
- content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ...
+ ) -> AsyncItemPaged[QuotaItem]: ...
- @overload
- async def begin_list_get_group_id_list_for_ldap_user(
+
+ class azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsOperations:
+
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ...
+ *args,
+ **kwargs
+ ) -> None: ...
- @overload
- async def begin_list_quota_report(
+ @distributed_trace_async
+ async def get(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[QuotaReportFilterRequest] = None,
- *,
- content_type: str = "application/json",
+ location: str,
+ quota_limit_name: str,
**kwargs: Any
- ) -> AsyncLROPoller[ListQuotaReportResult]: ...
+ ) -> QuotaItem: ...
- @overload
- async def begin_list_quota_report(
+ @distributed_trace
+ def list(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[QuotaReportFilterRequest] = None,
- *,
- content_type: str = "application/json",
+ location: str,
**kwargs: Any
- ) -> AsyncLROPoller[ListQuotaReportResult]: ...
+ ) -> AsyncItemPaged[QuotaItem]: ...
- @overload
- async def begin_list_quota_report(
+
+ class azure.mgmt.netapp.aio.operations.NetAppResourceRegionInfosOperations:
+
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
- *,
- content_type: str = "application/json",
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace_async
+ async def get(
+ self,
+ location: str,
**kwargs: Any
- ) -> AsyncLROPoller[ListQuotaReportResult]: ...
+ ) -> RegionInfoResource: ...
+
+ @distributed_trace
+ def list(
+ self,
+ location: str,
+ **kwargs: Any
+ ) -> AsyncItemPaged[RegionInfoResource]: ...
+
+
+ class azure.mgmt.netapp.aio.operations.NetAppResourceUsagesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace_async
+ async def get(
+ self,
+ location: str,
+ usage_type: str,
+ **kwargs: Any
+ ) -> UsageResult: ...
+
+ @distributed_trace
+ def list(
+ self,
+ location: str,
+ **kwargs: Any
+ ) -> AsyncItemPaged[UsageResult]: ...
+
+
+ class azure.mgmt.netapp.aio.operations.Operations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace
+ def list(self, **kwargs: Any) -> AsyncItemPaged[Operation]: ...
+
+
+ class azure.mgmt.netapp.aio.operations.PoolsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
@overload
- async def begin_peer_external_cluster(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- body: PeerClusterForVolumeMigrationRequest,
+ body: CapacityPool,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ...
+ ) -> AsyncLROPoller[CapacityPool]: ...
@overload
- async def begin_peer_external_cluster(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- body: PeerClusterForVolumeMigrationRequest,
+ body: CapacityPool,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ...
+ ) -> AsyncLROPoller[CapacityPool]: ...
@overload
- async def begin_peer_external_cluster(
+ async def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ...
+ ) -> AsyncLROPoller[CapacityPool]: ...
@distributed_trace_async
- async def begin_perform_replication_transfer(
+ async def begin_delete(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@overload
- async def begin_pool_change(
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- body: PoolChangeRequest,
+ body: CapacityPoolPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[CapacityPool]: ...
@overload
- async def begin_pool_change(
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- body: PoolChangeRequest,
+ body: CapacityPoolPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[CapacityPool]: ...
@overload
- async def begin_pool_change(
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[CapacityPool]: ...
@distributed_trace_async
- async def begin_populate_availability_zone(
+ async def get(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
**kwargs: Any
- ) -> AsyncLROPoller[Volume]: ...
+ ) -> CapacityPool: ...
- @distributed_trace_async
- async def begin_re_initialize_replication(
+ @distributed_trace
+ def list(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncItemPaged[CapacityPool]: ...
+
+
+ class azure.mgmt.netapp.aio.operations.RansomwareReportsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
@overload
- async def begin_reestablish_replication(
+ async def begin_clear_suspects(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: ReestablishReplicationRequest,
+ ransomware_report_name: str,
+ body: RansomwareSuspectsClearRequest,
*,
content_type: str = "application/json",
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@overload
- async def begin_reestablish_replication(
+ async def begin_clear_suspects(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: ReestablishReplicationRequest,
+ ransomware_report_name: str,
+ body: RansomwareSuspectsClearRequest,
*,
content_type: str = "application/json",
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@overload
- async def begin_reestablish_replication(
+ async def begin_clear_suspects(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
+ ransomware_report_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
) -> AsyncLROPoller[None]: ...
- @overload
- async def begin_relocate(
+ @distributed_trace_async
+ @api_version_validation(method_added_on='2025-12-01', params_added_on={'2025-12-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'ransomware_report_name', 'accept']}, api_versions_list=['2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ async def get(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[RelocateVolumeRequest] = None,
- *,
- content_type: str = "application/json",
+ ransomware_report_name: str,
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> RansomwareReport: ...
- @overload
- async def begin_relocate(
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-01', params_added_on={'2025-12-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def list(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[RelocateVolumeRequest] = None,
- *,
- content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncItemPaged[RansomwareReport]: ...
+
+
+ class azure.mgmt.netapp.aio.operations.SnapshotPoliciesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace_async
+ async def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@overload
- async def begin_relocate(
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
+ snapshot_policy_name: str,
+ body: SnapshotPolicyPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[SnapshotPolicy]: ...
- @distributed_trace_async
- async def begin_reset_cifs_password(
+ @overload
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ snapshot_policy_name: str,
+ body: SnapshotPolicyPatch,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[SnapshotPolicy]: ...
- @distributed_trace_async
- async def begin_resync_replication(
+ @overload
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ snapshot_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> AsyncLROPoller[SnapshotPolicy]: ...
@overload
- async def begin_revert(
+ async def create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: VolumeRevert,
+ snapshot_policy_name: str,
+ body: SnapshotPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> SnapshotPolicy: ...
@overload
- async def begin_revert(
+ async def create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: VolumeRevert,
+ snapshot_policy_name: str,
+ body: SnapshotPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> SnapshotPolicy: ...
@overload
- async def begin_revert(
+ async def create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ snapshot_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> SnapshotPolicy: ...
@distributed_trace_async
- async def begin_revert_relocation(
+ async def get(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ snapshot_policy_name: str,
**kwargs: Any
- ) -> AsyncLROPoller[None]: ...
+ ) -> SnapshotPolicy: ...
- @distributed_trace_async
- async def begin_split_clone_from_parent(
+ @distributed_trace
+ def list(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
**kwargs: Any
- ) -> AsyncLROPoller[Volume]: ...
+ ) -> AsyncItemPaged[SnapshotPolicy]: ...
+
+ @distributed_trace_async
+ async def list_volumes(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ **kwargs: Any
+ ) -> SnapshotPolicyVolumeList: ...
+
+
+ class azure.mgmt.netapp.aio.operations.SnapshotsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
@overload
- async def begin_update(
+ async def begin_create(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: VolumePatch,
+ snapshot_name: str,
+ body: Snapshot,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Volume]: ...
+ ) -> AsyncLROPoller[Snapshot]: ...
@overload
- async def begin_update(
+ async def begin_create(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: VolumePatch,
+ snapshot_name: str,
+ body: Snapshot,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Volume]: ...
+ ) -> AsyncLROPoller[Snapshot]: ...
@overload
- async def begin_update(
+ async def begin_create(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
+ snapshot_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncLROPoller[Volume]: ...
+ ) -> AsyncLROPoller[Snapshot]: ...
@distributed_trace_async
- async def get(
+ async def begin_delete(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
+ snapshot_name: str,
**kwargs: Any
- ) -> Volume: ...
+ ) -> AsyncLROPoller[None]: ...
- @distributed_trace
- def list(
+ @overload
+ async def begin_restore_files(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: SnapshotRestoreFiles,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncItemPaged[Volume]: ...
+ ) -> AsyncLROPoller[None]: ...
@overload
- def list_replications(
+ async def begin_restore_files(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[ListReplicationsRequest] = None,
+ snapshot_name: str,
+ body: SnapshotRestoreFiles,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncItemPaged[Replication]: ...
+ ) -> AsyncLROPoller[None]: ...
@overload
- def list_replications(
+ async def begin_restore_files(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[ListReplicationsRequest] = None,
+ snapshot_name: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncItemPaged[Replication]: ...
+ ) -> AsyncLROPoller[None]: ...
@overload
- def list_replications(
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[IO[bytes]] = None,
+ snapshot_name: str,
+ body: SnapshotPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> AsyncItemPaged[Replication]: ...
+ ) -> AsyncLROPoller[Snapshot]: ...
- @distributed_trace_async
- async def replication_status(
+ @overload
+ async def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
+ snapshot_name: str,
+ body: SnapshotPatch,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> ReplicationStatus: ...
+ ) -> AsyncLROPoller[Snapshot]: ...
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[Snapshot]: ...
-namespace azure.mgmt.netapp.models
+ @distributed_trace_async
+ async def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> Snapshot: ...
- class azure.mgmt.netapp.models.AcceptGrowCapacityPoolForShortTermCloneSplit(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ACCEPTED = "Accepted"
- DECLINED = "Declined"
+ @distributed_trace
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncItemPaged[Snapshot]: ...
- class azure.mgmt.netapp.models.AccountEncryption(_Model):
- identity: Optional[EncryptionIdentity]
- key_source: Optional[Union[str, KeySource]]
- key_vault_properties: Optional[KeyVaultProperties]
+ class azure.mgmt.netapp.aio.operations.SubvolumesOperations:
- @overload
def __init__(
self,
- *,
- identity: Optional[EncryptionIdentity] = ...,
- key_source: Optional[Union[str, KeySource]] = ...,
- key_vault_properties: Optional[KeyVaultProperties] = ...
+ *args,
+ **kwargs
) -> None: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.AccountProperties(_Model):
- active_directories: Optional[list[ActiveDirectory]]
- disable_showmount: Optional[bool]
- encryption: Optional[AccountEncryption]
- multi_ad_status: Optional[Union[str, MultiAdStatus]]
- nfs_v4_id_domain: Optional[str]
- provisioning_state: Optional[str]
+ async def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: SubvolumeInfo,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[SubvolumeInfo]: ...
@overload
- def __init__(
+ async def begin_create(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: SubvolumeInfo,
*,
- active_directories: Optional[list[ActiveDirectory]] = ...,
- encryption: Optional[AccountEncryption] = ...,
- nfs_v4_id_domain: Optional[str] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[SubvolumeInfo]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ async def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[SubvolumeInfo]: ...
+ @distributed_trace_async
+ async def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
- class azure.mgmt.netapp.models.ActiveDirectory(_Model):
- active_directory_id: Optional[str]
- ad_name: Optional[str]
- administrators: Optional[list[str]]
- aes_encryption: Optional[bool]
- allow_local_nfs_users_with_ldap: Optional[bool]
- backup_operators: Optional[list[str]]
- dns: Optional[str]
- domain: Optional[str]
- encrypt_dc_connections: Optional[bool]
- kdc_ip: Optional[str]
- ldap_over_tls: Optional[bool]
- ldap_search_scope: Optional[LdapSearchScopeOpt]
- ldap_signing: Optional[bool]
- organizational_unit: Optional[str]
- password: Optional[str]
- preferred_servers_for_ldap_client: Optional[str]
- security_operators: Optional[list[str]]
- server_root_ca_certificate: Optional[str]
- site: Optional[str]
- smb_server_name: Optional[str]
- status: Optional[Union[str, ActiveDirectoryStatus]]
- status_details: Optional[str]
- username: Optional[str]
+ @distributed_trace_async
+ async def begin_get_metadata(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[SubvolumeModel]: ...
@overload
- def __init__(
+ async def begin_update(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: SubvolumePatchRequest,
*,
- active_directory_id: Optional[str] = ...,
- ad_name: Optional[str] = ...,
- administrators: Optional[list[str]] = ...,
- aes_encryption: Optional[bool] = ...,
- allow_local_nfs_users_with_ldap: Optional[bool] = ...,
- backup_operators: Optional[list[str]] = ...,
- dns: Optional[str] = ...,
- domain: Optional[str] = ...,
- encrypt_dc_connections: Optional[bool] = ...,
- kdc_ip: Optional[str] = ...,
- ldap_over_tls: Optional[bool] = ...,
- ldap_search_scope: Optional[LdapSearchScopeOpt] = ...,
- ldap_signing: Optional[bool] = ...,
- organizational_unit: Optional[str] = ...,
- password: Optional[str] = ...,
- preferred_servers_for_ldap_client: Optional[str] = ...,
- security_operators: Optional[list[str]] = ...,
- server_root_ca_certificate: Optional[str] = ...,
- site: Optional[str] = ...,
- smb_server_name: Optional[str] = ...,
- username: Optional[str] = ...
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.ActiveDirectoryStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- CREATED = "Created"
- DELETED = "Deleted"
- ERROR = "Error"
- IN_USE = "InUse"
- UPDATING = "Updating"
-
-
- class azure.mgmt.netapp.models.ActualRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
- LEARNING = "Learning"
- PAUSED = "Paused"
-
-
- class azure.mgmt.netapp.models.ApplicationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ORACLE = "ORACLE"
- SAP_HANA = "SAP-HANA"
-
-
- class azure.mgmt.netapp.models.AuthorizeRequest(_Model):
- remote_volume_resource_id: Optional[str]
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[SubvolumeInfo]: ...
@overload
- def __init__(
+ async def begin_update(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: SubvolumePatchRequest,
*,
- remote_volume_resource_id: Optional[str] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[SubvolumeInfo]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[SubvolumeInfo]: ...
+ @distributed_trace_async
+ async def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ **kwargs: Any
+ ) -> SubvolumeInfo: ...
- class azure.mgmt.netapp.models.AvsDataStore(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ @distributed_trace
+ def list_by_volume(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncItemPaged[SubvolumeInfo]: ...
- class azure.mgmt.netapp.models.AzureKeyVaultDetails(_Model):
- certificate_akv_details: Optional[CertificateAkvDetails]
- credentials_akv_details: Optional[CredentialsAkvDetails]
+ class azure.mgmt.netapp.aio.operations.VolumeGroupsOperations:
- @overload
def __init__(
self,
- *,
- certificate_akv_details: Optional[CertificateAkvDetails] = ...,
- credentials_akv_details: Optional[CredentialsAkvDetails] = ...
+ *args,
+ **kwargs
) -> None: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.Backup(ProxyResource):
- id: str
- name: str
- properties: BackupProperties
- system_data: SystemData
- type: str
-
- def __getattr__(self, name: str) -> Any: ...
+ async def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: VolumeGroupDetails,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeGroupDetails]: ...
@overload
- def __init__(
+ async def begin_create(
self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: VolumeGroupDetails,
*,
- properties: BackupProperties
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeGroupDetails]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ async def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeGroupDetails]: ...
- def __setattr__(
+ @distributed_trace_async
+ async def begin_delete(
self,
- key: str,
- value: Any
- ) -> None: ...
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
+ @distributed_trace_async
+ async def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ **kwargs: Any
+ ) -> VolumeGroupDetails: ...
- class azure.mgmt.netapp.models.BackupPatch(_Model):
- properties: Optional[BackupPatchProperties]
+ @distributed_trace
+ def list_by_net_app_account(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> AsyncItemPaged[VolumeGroup]: ...
- def __getattr__(self, name: str) -> Any: ...
- @overload
+ class azure.mgmt.netapp.aio.operations.VolumeQuotaRulesOperations:
+
def __init__(
self,
- *,
- properties: Optional[BackupPatchProperties] = ...
+ *args,
+ **kwargs
) -> None: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- def __setattr__(
+ async def begin_create(
self,
- key: str,
- value: Any
- ) -> None: ...
-
-
- class azure.mgmt.netapp.models.BackupPatchProperties(_Model):
- label: Optional[str]
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: VolumeQuotaRule,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeQuotaRule]: ...
@overload
- def __init__(
+ async def begin_create(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: VolumeQuotaRule,
*,
- label: Optional[str] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeQuotaRule]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BackupPolicy(TrackedResource):
- etag: Optional[str]
- id: str
- location: str
- name: str
- properties: BackupPolicyProperties
- system_data: SystemData
- tags: dict[str, str]
- type: str
+ async def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeQuotaRule]: ...
- def __getattr__(self, name: str) -> Any: ...
+ @distributed_trace_async
+ async def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_update(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: VolumeQuotaRulePatch,
*,
- location: str,
- properties: BackupPolicyProperties,
- tags: Optional[dict[str, str]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeQuotaRule]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- def __setattr__(
+ async def begin_update(
self,
- key: str,
- value: Any
- ) -> None: ...
-
-
- class azure.mgmt.netapp.models.BackupPolicyPatch(_Model):
- id: Optional[str]
- location: Optional[str]
- name: Optional[str]
- properties: Optional[BackupPolicyProperties]
- tags: Optional[dict[str, str]]
- type: Optional[str]
-
- def __getattr__(self, name: str) -> Any: ...
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: VolumeQuotaRulePatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeQuotaRule]: ...
@overload
- def __init__(
+ async def begin_update(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: IO[bytes],
*,
- location: Optional[str] = ...,
- properties: Optional[BackupPolicyProperties] = ...,
- tags: Optional[dict[str, str]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[VolumeQuotaRule]: ...
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ @distributed_trace_async
+ async def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ **kwargs: Any
+ ) -> VolumeQuotaRule: ...
- def __setattr__(
+ @distributed_trace
+ def list_by_volume(
self,
- key: str,
- value: Any
- ) -> None: ...
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncItemPaged[VolumeQuotaRule]: ...
- class azure.mgmt.netapp.models.BackupPolicyProperties(_Model):
- backup_policy_id: Optional[str]
- daily_backups_to_keep: Optional[int]
- enabled: Optional[bool]
- monthly_backups_to_keep: Optional[int]
- provisioning_state: Optional[str]
- volume_backups: Optional[list[VolumeBackups]]
- volumes_assigned: Optional[int]
- weekly_backups_to_keep: Optional[int]
+ class azure.mgmt.netapp.aio.operations.VolumesOperations:
- @overload
def __init__(
self,
- *,
- daily_backups_to_keep: Optional[int] = ...,
- enabled: Optional[bool] = ...,
- monthly_backups_to_keep: Optional[int] = ...,
- weekly_backups_to_keep: Optional[int] = ...
+ *args,
+ **kwargs
) -> None: ...
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BackupProperties(_Model):
- backup_id: Optional[str]
- backup_policy_resource_id: Optional[str]
- backup_type: Optional[Union[str, BackupType]]
- completion_date: Optional[datetime]
- creation_date: Optional[datetime]
- failure_reason: Optional[str]
- is_large_volume: Optional[bool]
- label: Optional[str]
- provisioning_state: Optional[str]
- size: Optional[int]
- snapshot_creation_date: Optional[datetime]
- snapshot_name: Optional[str]
- use_existing_snapshot: Optional[bool]
- volume_resource_id: str
+ @distributed_trace_async
+ async def begin_authorize_external_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[SvmPeerCommandResponse]: ...
@overload
- def __init__(
+ async def begin_authorize_replication(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: AuthorizeRequest,
*,
- label: Optional[str] = ...,
- snapshot_name: Optional[str] = ...,
- use_existing_snapshot: Optional[bool] = ...,
- volume_resource_id: str
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BackupRestoreFiles(_Model):
- destination_volume_id: str
- file_list: list[str]
- restore_file_path: Optional[str]
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_authorize_replication(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: AuthorizeRequest,
*,
- destination_volume_id: str,
- file_list: list[str],
- restore_file_path: Optional[str] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BackupStatus(_Model):
- error_message: Optional[str]
- healthy: Optional[bool]
- last_transfer_size: Optional[int]
- last_transfer_type: Optional[str]
- mirror_state: Optional[Union[str, MirrorState]]
- relationship_status: Optional[Union[str, VolumeBackupRelationshipStatus]]
- total_transfer_bytes: Optional[int]
- transfer_progress_bytes: Optional[int]
- unhealthy_reason: Optional[str]
-
-
- class azure.mgmt.netapp.models.BackupType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- MANUAL = "Manual"
- SCHEDULED = "Scheduled"
-
-
- class azure.mgmt.netapp.models.BackupVault(TrackedResource):
- id: str
- location: str
- name: str
- properties: Optional[BackupVaultProperties]
- system_data: SystemData
- tags: dict[str, str]
- type: str
-
- def __getattr__(self, name: str) -> Any: ...
+ async def begin_authorize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_break_file_locks(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[BreakFileLocksRequest] = None,
*,
- location: str,
- properties: Optional[BackupVaultProperties] = ...,
- tags: Optional[dict[str, str]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- def __setattr__(
+ async def begin_break_file_locks(
self,
- key: str,
- value: Any
- ) -> None: ...
-
-
- class azure.mgmt.netapp.models.BackupVaultPatch(_Model):
- tags: Optional[dict[str, str]]
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[BreakFileLocksRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_break_file_locks(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
*,
- tags: Optional[dict[str, str]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BackupVaultProperties(_Model):
- provisioning_state: Optional[str]
-
-
- class azure.mgmt.netapp.models.BackupsMigrationRequest(_Model):
- backup_vault_id: str
+ async def begin_break_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[BreakReplicationRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_break_replication(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[BreakReplicationRequest] = None,
*,
- backup_vault_id: str
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BreakFileLocksRequest(_Model):
- client_ip: Optional[str]
- confirm_running_disruptive_operation: Optional[bool]
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_break_replication(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
*,
- client_ip: Optional[str] = ...,
- confirm_running_disruptive_operation: Optional[bool] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BreakReplicationRequest(_Model):
- force_break_replication: Optional[bool]
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Volume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[Volume]: ...
@overload
- def __init__(
+ async def begin_create_or_update(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Volume,
*,
- force_break_replication: Optional[bool] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[Volume]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[Volume]: ...
- class azure.mgmt.netapp.models.BreakthroughMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ @distributed_trace_async
+ async def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ *,
+ force_delete: Optional[bool] = ...,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
+ @distributed_trace_async
+ async def begin_delete_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
- class azure.mgmt.netapp.models.Bucket(ProxyResource):
- id: str
- name: str
- properties: Optional[BucketProperties]
- system_data: SystemData
- type: str
+ @distributed_trace_async
+ async def begin_finalize_external_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
- def __getattr__(self, name: str) -> Any: ...
+ @distributed_trace_async
+ async def begin_finalize_relocation(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_list_get_group_id_list_for_ldap_user(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: GetGroupIdListForLDAPUserRequest,
*,
- properties: Optional[BucketProperties] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- def __setattr__(
+ async def begin_list_get_group_id_list_for_ldap_user(
self,
- key: str,
- value: Any
- ) -> None: ...
-
-
- class azure.mgmt.netapp.models.BucketCredentialsExpiry(_Model):
- key_pair_expiry_days: Optional[int]
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: GetGroupIdListForLDAPUserRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ...
@overload
- def __init__(
+ async def begin_list_get_group_id_list_for_ldap_user(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
*,
- key_pair_expiry_days: Optional[int] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BucketGenerateCredentials(_Model):
- access_key: Optional[str]
- key_pair_expiry: Optional[datetime]
- secret_key: Optional[str]
-
-
- class azure.mgmt.netapp.models.BucketPatch(ProxyResource):
- id: str
- name: str
- properties: Optional[BucketPatchProperties]
- system_data: SystemData
- type: str
-
- def __getattr__(self, name: str) -> Any: ...
+ async def begin_list_quota_report(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[QuotaReportFilterRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ListQuotaReportResult]: ...
@overload
- def __init__(
+ async def begin_list_quota_report(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[QuotaReportFilterRequest] = None,
*,
- properties: Optional[BucketPatchProperties] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ListQuotaReportResult]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- def __setattr__(
+ async def begin_list_quota_report(
self,
- key: str,
- value: Any
- ) -> None: ...
-
-
- class azure.mgmt.netapp.models.BucketPatchPermissions(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- READ_ONLY = "ReadOnly"
- READ_WRITE = "ReadWrite"
-
-
- class azure.mgmt.netapp.models.BucketPatchProperties(_Model):
- akv_details: Optional[AzureKeyVaultDetails]
- file_system_user: Optional[FileSystemUser]
- permissions: Optional[Union[str, BucketPatchPermissions]]
- provisioning_state: Optional[Union[str, NetAppProvisioningState]]
- server: Optional[BucketServerPatchProperties]
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ListQuotaReportResult]: ...
@overload
- def __init__(
+ async def begin_peer_external_cluster(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: PeerClusterForVolumeMigrationRequest,
*,
- akv_details: Optional[AzureKeyVaultDetails] = ...,
- file_system_user: Optional[FileSystemUser] = ...,
- permissions: Optional[Union[str, BucketPatchPermissions]] = ...,
- server: Optional[BucketServerPatchProperties] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BucketPermissions(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- READ_ONLY = "ReadOnly"
- READ_WRITE = "ReadWrite"
-
-
- class azure.mgmt.netapp.models.BucketProperties(_Model):
- akv_details: Optional[AzureKeyVaultDetails]
- file_system_user: Optional[FileSystemUser]
- path: Optional[str]
- permissions: Optional[Union[str, BucketPermissions]]
- provisioning_state: Optional[Union[str, NetAppProvisioningState]]
- server: Optional[BucketServerProperties]
- status: Optional[Union[str, CredentialsStatus]]
-
- @overload
- def __init__(
+ async def begin_peer_external_cluster(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: PeerClusterForVolumeMigrationRequest,
*,
- akv_details: Optional[AzureKeyVaultDetails] = ...,
- file_system_user: Optional[FileSystemUser] = ...,
- path: Optional[str] = ...,
- permissions: Optional[Union[str, BucketPermissions]] = ...,
- server: Optional[BucketServerProperties] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
+ async def begin_peer_external_cluster(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ...
- class azure.mgmt.netapp.models.BucketServerPatchProperties(_Model):
- certificate_object: Optional[str]
- fqdn: Optional[str]
- on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]]
+ @distributed_trace_async
+ async def begin_perform_replication_transfer(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_pool_change(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: PoolChangeRequest,
*,
- certificate_object: Optional[str] = ...,
- fqdn: Optional[str] = ...,
- on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] = ...
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.BucketServerProperties(_Model):
- certificate_common_name: Optional[str]
- certificate_expiry_date: Optional[datetime]
- certificate_object: Optional[str]
- fqdn: Optional[str]
- ip_address: Optional[str]
- on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]]
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_pool_change(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: PoolChangeRequest,
*,
- certificate_object: Optional[str] = ...,
- fqdn: Optional[str] = ...,
- on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ async def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
+ @distributed_trace_async
+ async def begin_populate_availability_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[Volume]: ...
- class azure.mgmt.netapp.models.Cache(TrackedResource):
- etag: Optional[str]
- id: str
- location: str
- name: str
- properties: CacheProperties
- system_data: SystemData
- tags: dict[str, str]
- type: str
- zones: Optional[list[str]]
+ @distributed_trace_async
+ async def begin_re_initialize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_reestablish_replication(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ReestablishReplicationRequest,
*,
- location: str,
- properties: CacheProperties,
- tags: Optional[dict[str, str]] = ...,
- zones: Optional[list[str]] = ...
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.CacheFileAccessLogs(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
-
-
- class azure.mgmt.netapp.models.CacheLifeCycleState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- CLUSTER_PEERING_OFFER_SENT = "ClusterPeeringOfferSent"
- CREATING = "Creating"
- FAILED = "Failed"
- SUCCEEDED = "Succeeded"
- VSERVER_PEERING_OFFER_SENT = "VserverPeeringOfferSent"
-
-
- class azure.mgmt.netapp.models.CacheMountTargetProperties(_Model):
- ip_address: Optional[str]
- mount_target_id: Optional[str]
- smb_server_fqdn: Optional[str]
-
-
- class azure.mgmt.netapp.models.CacheProperties(_Model):
- actual_throughput_mibps: Optional[float]
- cache_state: Optional[Union[str, CacheLifeCycleState]]
- cache_subnet_resource_id: str
- cifs_change_notifications: Optional[Union[str, CifsChangeNotifyState]]
- encryption: Optional[Union[str, EncryptionState]]
- encryption_key_source: Union[str, EncryptionKeySource]
- export_policy: Optional[CachePropertiesExportPolicy]
- file_access_logs: Optional[Union[str, CacheFileAccessLogs]]
- file_path: str
- global_file_locking: Optional[Union[str, GlobalFileLockingState]]
- kerberos: Optional[Union[str, KerberosState]]
- key_vault_private_endpoint_resource_id: Optional[str]
- language: Optional[Union[str, VolumeLanguage]]
- ldap: Optional[Union[str, LdapState]]
- ldap_server_type: Optional[Union[str, LdapServerType]]
- maximum_number_of_files: Optional[int]
- mount_targets: Optional[list[CacheMountTargetProperties]]
- origin_cluster_information: OriginClusterInformation
- peering_subnet_resource_id: str
- protocol_types: Optional[list[Union[str, ProtocolTypes]]]
- provisioning_state: Optional[Union[str, CacheProvisioningState]]
- size: int
- smb_settings: Optional[SmbSettings]
- throughput_mibps: Optional[float]
- write_back: Optional[Union[str, EnableWriteBackState]]
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_reestablish_replication(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ReestablishReplicationRequest,
*,
- cache_subnet_resource_id: str,
- cifs_change_notifications: Optional[Union[str, CifsChangeNotifyState]] = ...,
- encryption_key_source: Union[str, EncryptionKeySource],
- export_policy: Optional[CachePropertiesExportPolicy] = ...,
- file_path: str,
- global_file_locking: Optional[Union[str, GlobalFileLockingState]] = ...,
- kerberos: Optional[Union[str, KerberosState]] = ...,
- key_vault_private_endpoint_resource_id: Optional[str] = ...,
- ldap: Optional[Union[str, LdapState]] = ...,
- ldap_server_type: Optional[Union[str, LdapServerType]] = ...,
- origin_cluster_information: OriginClusterInformation,
- peering_subnet_resource_id: str,
- protocol_types: Optional[list[Union[str, ProtocolTypes]]] = ...,
- size: int,
- smb_settings: Optional[SmbSettings] = ...,
- throughput_mibps: Optional[float] = ...,
- write_back: Optional[Union[str, EnableWriteBackState]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.CachePropertiesExportPolicy(_Model):
- rules: Optional[list[ExportPolicyRule]]
+ async def begin_reestablish_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_relocate(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[RelocateVolumeRequest] = None,
*,
- rules: Optional[list[ExportPolicyRule]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.CacheProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- CANCELED = "Canceled"
- CREATING = "Creating"
- DELETING = "Deleting"
- FAILED = "Failed"
- SUCCEEDED = "Succeeded"
- UPDATING = "Updating"
-
-
- class azure.mgmt.netapp.models.CacheUpdate(_Model):
- properties: Optional[CacheUpdateProperties]
- tags: Optional[dict[str, str]]
-
- @overload
- def __init__(
+ async def begin_relocate(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[RelocateVolumeRequest] = None,
*,
- properties: Optional[CacheUpdateProperties] = ...,
- tags: Optional[dict[str, str]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ async def begin_relocate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
+ @distributed_trace_async
+ async def begin_reset_cifs_password(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
- class azure.mgmt.netapp.models.CacheUpdateProperties(_Model):
- cifs_change_notifications: Optional[Union[str, CifsChangeNotifyState]]
- export_policy: Optional[CachePropertiesExportPolicy]
- key_vault_private_endpoint_resource_id: Optional[str]
- protocol_types: Optional[list[Union[str, ProtocolTypes]]]
- size: Optional[int]
- smb_settings: Optional[SmbSettings]
- throughput_mibps: Optional[float]
- write_back: Optional[Union[str, EnableWriteBackState]]
+ @distributed_trace_async
+ async def begin_resync_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_revert(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: VolumeRevert,
*,
- cifs_change_notifications: Optional[Union[str, CifsChangeNotifyState]] = ...,
- export_policy: Optional[CachePropertiesExportPolicy] = ...,
- key_vault_private_endpoint_resource_id: Optional[str] = ...,
- protocol_types: Optional[list[Union[str, ProtocolTypes]]] = ...,
- size: Optional[int] = ...,
- smb_settings: Optional[SmbSettings] = ...,
- throughput_mibps: Optional[float] = ...,
- write_back: Optional[Union[str, EnableWriteBackState]] = ...
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.CapacityPool(TrackedResource):
- etag: Optional[str]
- id: str
- location: str
- name: str
- properties: PoolProperties
- system_data: SystemData
- tags: dict[str, str]
- type: str
-
- def __getattr__(self, name: str) -> Any: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(
+ async def begin_revert(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: VolumeRevert,
*,
- location: str,
- properties: PoolProperties,
- tags: Optional[dict[str, str]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- def __setattr__(
+ async def begin_revert(
self,
- key: str,
- value: Any
- ) -> None: ...
-
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
- class azure.mgmt.netapp.models.CapacityPoolPatch(_Model):
- id: Optional[str]
- location: Optional[str]
- name: Optional[str]
- properties: Optional[PoolPatchProperties]
- tags: Optional[dict[str, str]]
- type: Optional[str]
+ @distributed_trace_async
+ async def begin_revert_relocation(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]: ...
- def __getattr__(self, name: str) -> Any: ...
+ @distributed_trace_async
+ async def begin_split_clone_from_parent(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[Volume]: ...
@overload
- def __init__(
+ async def begin_update(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: VolumePatch,
*,
- location: Optional[str] = ...,
- properties: Optional[PoolPatchProperties] = ...,
- tags: Optional[dict[str, str]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[Volume]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- def __setattr__(
+ async def begin_update(
self,
- key: str,
- value: Any
- ) -> None: ...
-
-
- class azure.mgmt.netapp.models.CertificateAkvDetails(_Model):
- certificate_key_vault_uri: Optional[str]
- certificate_name: Optional[str]
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: VolumePatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[Volume]: ...
@overload
- def __init__(
+ async def begin_update(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
*,
- certificate_key_vault_uri: Optional[str] = ...,
- certificate_name: Optional[str] = ...
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[Volume]: ...
+ @distributed_trace_async
+ async def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> Volume: ...
- class azure.mgmt.netapp.models.ChangeKeyVault(_Model):
- key_name: str
- key_vault_private_endpoints: list[KeyVaultPrivateEndpoint]
- key_vault_resource_id: Optional[str]
- key_vault_uri: str
+ @distributed_trace
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ **kwargs: Any
+ ) -> AsyncItemPaged[Volume]: ...
@overload
- def __init__(
+ def list_replications(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[ListReplicationsRequest] = None,
*,
- key_name: str,
- key_vault_private_endpoints: list[KeyVaultPrivateEndpoint],
- key_vault_resource_id: Optional[str] = ...,
- key_vault_uri: str
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.CheckAvailabilityResponse(_Model):
- is_available: Optional[bool]
- message: Optional[str]
- reason: Optional[Union[str, InAvailabilityReasonType]]
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncItemPaged[Replication]: ...
@overload
- def __init__(
+ def list_replications(
self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[ListReplicationsRequest] = None,
*,
- is_available: Optional[bool] = ...,
- message: Optional[str] = ...,
- reason: Optional[Union[str, InAvailabilityReasonType]] = ...
- ) -> None: ...
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncItemPaged[Replication]: ...
@overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
-
- class azure.mgmt.netapp.models.CheckNameResourceTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS = "Microsoft.NetApp/netAppAccounts"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_BACKUP_VAULTS_BACKUPS = "Microsoft.NetApp/netAppAccounts/backupVaults/backups"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS = "Microsoft.NetApp/netAppAccounts/capacityPools"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES_BACKUPS = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES_SNAPSHOTS = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots"
-
-
- class azure.mgmt.netapp.models.CheckQuotaNameResourceTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS = "Microsoft.NetApp/netAppAccounts"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_BACKUP_VAULTS_BACKUPS = "Microsoft.NetApp/netAppAccounts/backupVaults/backups"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS = "Microsoft.NetApp/netAppAccounts/capacityPools"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES_BACKUPS = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups"
- MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES_SNAPSHOTS = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots"
+ def list_replications(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncItemPaged[Replication]: ...
+ @distributed_trace_async
+ async def replication_status(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> ReplicationStatus: ...
- class azure.mgmt.netapp.models.ChownMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- RESTRICTED = "Restricted"
- UNRESTRICTED = "Unrestricted"
+namespace azure.mgmt.netapp.models
- class azure.mgmt.netapp.models.CifsChangeNotifyState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ class azure.mgmt.netapp.models.AcceptGrowCapacityPoolForShortTermCloneSplit(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ACCEPTED = "Accepted"
+ DECLINED = "Declined"
- class azure.mgmt.netapp.models.CifsUser(_Model):
- username: Optional[str]
+ class azure.mgmt.netapp.models.AccountEncryption(_Model):
+ identity: Optional[EncryptionIdentity]
+ key_source: Optional[Union[str, KeySource]]
+ key_vault_properties: Optional[KeyVaultProperties]
@overload
def __init__(
self,
*,
- username: Optional[str] = ...
+ identity: Optional[EncryptionIdentity] = ...,
+ key_source: Optional[Union[str, KeySource]] = ...,
+ key_vault_properties: Optional[KeyVaultProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ClusterPeerCommandResponse(_Model):
- properties: Optional[ClusterPeerCommandResponseProperties]
+ class azure.mgmt.netapp.models.AccountProperties(_Model):
+ active_directories: Optional[list[ActiveDirectory]]
+ disable_showmount: Optional[bool]
+ encryption: Optional[AccountEncryption]
+ entra_id_config: Optional[EntraIdConfig]
+ ldap_configuration: Optional[LdapConfiguration]
+ multi_ad_status: Optional[Union[str, MultiAdStatus]]
+ nfs_v4_id_domain: Optional[str]
+ provisioning_state: Optional[str]
@overload
def __init__(
self,
*,
- properties: Optional[ClusterPeerCommandResponseProperties] = ...
+ active_directories: Optional[list[ActiveDirectory]] = ...,
+ encryption: Optional[AccountEncryption] = ...,
+ entra_id_config: Optional[EntraIdConfig] = ...,
+ ldap_configuration: Optional[LdapConfiguration] = ...,
+ nfs_v4_id_domain: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ClusterPeerCommandResponseProperties(_Model):
- cluster_peering_command: Optional[str]
- passphrase: Optional[str]
+ class azure.mgmt.netapp.models.AccountPropertiesPatch(_Model):
+ active_directories: Optional[list[ActiveDirectory]]
+ encryption: Optional[AccountEncryption]
+ entra_id_config: Optional[EntraIdConfigPatch]
+ ldap_configuration: Optional[LdapConfigurationPatch]
+ nfs_v4_id_domain: Optional[str]
@overload
def __init__(
self,
*,
- cluster_peering_command: Optional[str] = ...,
- passphrase: Optional[str] = ...
+ active_directories: Optional[list[ActiveDirectory]] = ...,
+ encryption: Optional[AccountEncryption] = ...,
+ entra_id_config: Optional[EntraIdConfigPatch] = ...,
+ ldap_configuration: Optional[LdapConfigurationPatch] = ...,
+ nfs_v4_id_domain: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.CoolAccessRetrievalPolicy(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DEFAULT = "Default"
- NEVER = "Never"
- ON_READ = "OnRead"
-
-
- class azure.mgmt.netapp.models.CoolAccessTieringPolicy(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- AUTO = "Auto"
- SNAPSHOT_ONLY = "SnapshotOnly"
-
-
- class azure.mgmt.netapp.models.CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- APPLICATION = "Application"
- KEY = "Key"
- MANAGED_IDENTITY = "ManagedIdentity"
- USER = "User"
-
-
- class azure.mgmt.netapp.models.CredentialsAkvDetails(_Model):
- credentials_key_vault_uri: Optional[str]
- secret_name: Optional[str]
+ class azure.mgmt.netapp.models.ActiveDirectory(_Model):
+ active_directory_id: Optional[str]
+ ad_name: Optional[str]
+ administrators: Optional[list[str]]
+ aes_encryption: Optional[bool]
+ allow_local_nfs_users_with_ldap: Optional[bool]
+ backup_operators: Optional[list[str]]
+ dns: Optional[str]
+ domain: Optional[str]
+ encrypt_dc_connections: Optional[bool]
+ kdc_ip: Optional[str]
+ ldap_over_tls: Optional[bool]
+ ldap_search_scope: Optional[LdapSearchScopeOpt]
+ ldap_signing: Optional[bool]
+ organizational_unit: Optional[str]
+ password: Optional[str]
+ preferred_servers_for_ldap_client: Optional[str]
+ security_operators: Optional[list[str]]
+ server_root_ca_certificate: Optional[str]
+ site: Optional[str]
+ smb_server_name: Optional[str]
+ status: Optional[Union[str, ActiveDirectoryStatus]]
+ status_details: Optional[str]
+ username: Optional[str]
@overload
def __init__(
self,
*,
- credentials_key_vault_uri: Optional[str] = ...,
- secret_name: Optional[str] = ...
+ active_directory_id: Optional[str] = ...,
+ ad_name: Optional[str] = ...,
+ administrators: Optional[list[str]] = ...,
+ aes_encryption: Optional[bool] = ...,
+ allow_local_nfs_users_with_ldap: Optional[bool] = ...,
+ backup_operators: Optional[list[str]] = ...,
+ dns: Optional[str] = ...,
+ domain: Optional[str] = ...,
+ encrypt_dc_connections: Optional[bool] = ...,
+ kdc_ip: Optional[str] = ...,
+ ldap_over_tls: Optional[bool] = ...,
+ ldap_search_scope: Optional[LdapSearchScopeOpt] = ...,
+ ldap_signing: Optional[bool] = ...,
+ organizational_unit: Optional[str] = ...,
+ password: Optional[str] = ...,
+ preferred_servers_for_ldap_client: Optional[str] = ...,
+ security_operators: Optional[list[str]] = ...,
+ server_root_ca_certificate: Optional[str] = ...,
+ site: Optional[str] = ...,
+ smb_server_name: Optional[str] = ...,
+ username: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.CredentialsStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ACTIVE = "Active"
- CREDENTIALS_EXPIRED = "CredentialsExpired"
- NO_CREDENTIALS_SET = "NoCredentialsSet"
-
-
- class azure.mgmt.netapp.models.DailySchedule(_Model):
- hour: Optional[int]
- minute: Optional[int]
- snapshots_to_keep: Optional[int]
- used_bytes: Optional[int]
+ class azure.mgmt.netapp.models.ActiveDirectoryConfig(TrackedResource):
+ etag: Optional[str]
+ id: str
+ identity: Optional[ManagedServiceIdentity]
+ location: str
+ name: str
+ properties: Optional[ActiveDirectoryConfigProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
@overload
def __init__(
self,
*,
- hour: Optional[int] = ...,
- minute: Optional[int] = ...,
- snapshots_to_keep: Optional[int] = ...,
- used_bytes: Optional[int] = ...
+ identity: Optional[ManagedServiceIdentity] = ...,
+ location: str,
+ properties: Optional[ActiveDirectoryConfigProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.DesiredRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
-
-
- class azure.mgmt.netapp.models.DestinationReplication(_Model):
- region: Optional[str]
- replication_type: Optional[Union[str, ReplicationType]]
- resource_id: Optional[str]
- zone: Optional[str]
+ class azure.mgmt.netapp.models.ActiveDirectoryConfigProperties(_Model):
+ active_directory_status: Optional[Union[str, ActiveDirectoryStatus]]
+ administrators: Optional[list[str]]
+ backup_operators: Optional[list[str]]
+ dns: Optional[list[str]]
+ domain: str
+ organizational_unit: Optional[str]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ secret_password: SecretPassword
+ security_operators: Optional[list[str]]
+ site: str
+ smb_server_name: Optional[str]
+ user_name: Optional[str]
@overload
def __init__(
self,
*,
- region: Optional[str] = ...,
- replication_type: Optional[Union[str, ReplicationType]] = ...,
- resource_id: Optional[str] = ...,
- zone: Optional[str] = ...
+ administrators: Optional[list[str]] = ...,
+ backup_operators: Optional[list[str]] = ...,
+ dns: Optional[list[str]] = ...,
+ domain: str,
+ organizational_unit: Optional[str] = ...,
+ secret_password: SecretPassword,
+ security_operators: Optional[list[str]] = ...,
+ site: str,
+ smb_server_name: Optional[str] = ...,
+ user_name: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.Dimension(_Model):
- display_name: Optional[str]
- name: Optional[str]
+ class azure.mgmt.netapp.models.ActiveDirectoryConfigUpdate(_Model):
+ identity: Optional[ManagedServiceIdentity]
+ properties: Optional[ActiveDirectoryConfigUpdateProperties]
+ tags: Optional[dict[str, str]]
@overload
def __init__(
self,
*,
- display_name: Optional[str] = ...,
- name: Optional[str] = ...
+ identity: Optional[ManagedServiceIdentity] = ...,
+ properties: Optional[ActiveDirectoryConfigUpdateProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.EnableSubvolumes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
-
-
- class azure.mgmt.netapp.models.EnableWriteBackState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
-
-
- class azure.mgmt.netapp.models.EncryptionIdentity(_Model):
- federated_client_id: Optional[str]
- principal_id: Optional[str]
- user_assigned_identity: Optional[str]
+ class azure.mgmt.netapp.models.ActiveDirectoryConfigUpdateProperties(_Model):
+ administrators: Optional[list[str]]
+ backup_operators: Optional[list[str]]
+ dns: Optional[list[str]]
+ domain: Optional[str]
+ organizational_unit: Optional[str]
+ secret_password: Optional[SecretPassword]
+ security_operators: Optional[list[str]]
+ site: Optional[str]
+ smb_server_name: Optional[str]
+ user_name: Optional[str]
@overload
def __init__(
self,
*,
- federated_client_id: Optional[str] = ...,
- user_assigned_identity: Optional[str] = ...
+ administrators: Optional[list[str]] = ...,
+ backup_operators: Optional[list[str]] = ...,
+ dns: Optional[list[str]] = ...,
+ domain: Optional[str] = ...,
+ organizational_unit: Optional[str] = ...,
+ secret_password: Optional[SecretPassword] = ...,
+ security_operators: Optional[list[str]] = ...,
+ site: Optional[str] = ...,
+ smb_server_name: Optional[str] = ...,
+ user_name: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.EncryptionKeySource(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- MICROSOFT_KEY_VAULT = "Microsoft.KeyVault"
- MICROSOFT_NET_APP = "Microsoft.NetApp"
+ class azure.mgmt.netapp.models.ActiveDirectoryStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CREATED = "Created"
+ DELETED = "Deleted"
+ ERROR = "Error"
+ IN_USE = "InUse"
+ UPDATING = "Updating"
- class azure.mgmt.netapp.models.EncryptionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ class azure.mgmt.netapp.models.ActualRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
DISABLED = "Disabled"
ENABLED = "Enabled"
+ LEARNING = "Learning"
+ PAUSED = "Paused"
- class azure.mgmt.netapp.models.EncryptionTransitionRequest(_Model):
- private_endpoint_id: str
- virtual_network_id: str
+ class azure.mgmt.netapp.models.ApplicationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ORACLE = "ORACLE"
+ SAP_HANA = "SAP-HANA"
+
+
+ class azure.mgmt.netapp.models.AuthorizeRequest(_Model):
+ remote_volume_resource_id: Optional[str]
@overload
def __init__(
self,
*,
- private_endpoint_id: str,
- virtual_network_id: str
+ remote_volume_resource_id: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.EncryptionType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DOUBLE = "Double"
- SINGLE = "Single"
-
-
- class azure.mgmt.netapp.models.EndpointType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DST = "dst"
- SRC = "src"
-
-
- class azure.mgmt.netapp.models.ErrorAdditionalInfo(_Model):
- info: Optional[Any]
- type: Optional[str]
-
-
- class azure.mgmt.netapp.models.ErrorDetail(_Model):
- additional_info: Optional[list[ErrorAdditionalInfo]]
- code: Optional[str]
- details: Optional[list[ErrorDetail]]
- message: Optional[str]
- target: Optional[str]
+ class azure.mgmt.netapp.models.AvsDataStore(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- class azure.mgmt.netapp.models.ErrorResponse(_Model):
- error: Optional[ErrorDetail]
+ class azure.mgmt.netapp.models.AzureKeyVaultDetails(_Model):
+ certificate_akv_details: Optional[CertificateAkvDetails]
+ credentials_akv_details: Optional[CredentialsAkvDetails]
@overload
def __init__(
self,
*,
- error: Optional[ErrorDetail] = ...
+ certificate_akv_details: Optional[CertificateAkvDetails] = ...,
+ credentials_akv_details: Optional[CredentialsAkvDetails] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.Exclude(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DELETED = "Deleted"
- NONE = "None"
-
+ class azure.mgmt.netapp.models.Backup(ProxyResource):
+ id: str
+ name: str
+ properties: BackupProperties
+ system_data: SystemData
+ type: str
- class azure.mgmt.netapp.models.ExportPolicyRule(_Model):
- allowed_clients: Optional[str]
- chown_mode: Optional[Union[str, ChownMode]]
- cifs: Optional[bool]
- has_root_access: Optional[bool]
- kerberos5_i_read_only: Optional[bool]
- kerberos5_i_read_write: Optional[bool]
- kerberos5_p_read_only: Optional[bool]
- kerberos5_p_read_write: Optional[bool]
- kerberos5_read_only: Optional[bool]
- kerberos5_read_write: Optional[bool]
- nfsv3: Optional[bool]
- nfsv41: Optional[bool]
- rule_index: Optional[int]
- unix_read_only: Optional[bool]
- unix_read_write: Optional[bool]
+ def __getattr__(self, name: str) -> Any: ...
@overload
def __init__(
self,
*,
- allowed_clients: Optional[str] = ...,
- chown_mode: Optional[Union[str, ChownMode]] = ...,
- cifs: Optional[bool] = ...,
- has_root_access: Optional[bool] = ...,
- kerberos5_i_read_only: Optional[bool] = ...,
- kerberos5_i_read_write: Optional[bool] = ...,
- kerberos5_p_read_only: Optional[bool] = ...,
- kerberos5_p_read_write: Optional[bool] = ...,
- kerberos5_read_only: Optional[bool] = ...,
- kerberos5_read_write: Optional[bool] = ...,
- nfsv3: Optional[bool] = ...,
- nfsv41: Optional[bool] = ...,
- rule_index: Optional[int] = ...,
- unix_read_only: Optional[bool] = ...,
- unix_read_write: Optional[bool] = ...
+ properties: BackupProperties
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ def __setattr__(
+ self,
+ key: str,
+ value: Any
+ ) -> None: ...
- class azure.mgmt.netapp.models.ExternalReplicationSetupStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- CLUSTER_PEER_PENDING = "ClusterPeerPending"
- CLUSTER_PEER_REQUIRED = "ClusterPeerRequired"
- NO_ACTION_REQUIRED = "NoActionRequired"
- REPLICATION_CREATE_REQUIRED = "ReplicationCreateRequired"
- V_SERVER_PEER_REQUIRED = "VServerPeerRequired"
-
-
- class azure.mgmt.netapp.models.FileAccessLogs(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ class azure.mgmt.netapp.models.BackupPatch(_Model):
+ properties: Optional[BackupPatchProperties]
- class azure.mgmt.netapp.models.FilePathAvailabilityRequest(_Model):
- availability_zone: Optional[str]
- name: str
- subnet_id: str
+ def __getattr__(self, name: str) -> Any: ...
@overload
def __init__(
self,
*,
- availability_zone: Optional[str] = ...,
- name: str,
- subnet_id: str
+ properties: Optional[BackupPatchProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- class azure.mgmt.netapp.models.FileSystemUser(_Model):
- cifs_user: Optional[CifsUser]
- nfs_user: Optional[NfsUser]
-
- @overload
- def __init__(
+ def __setattr__(
self,
- *,
- cifs_user: Optional[CifsUser] = ...,
- nfs_user: Optional[NfsUser] = ...
+ key: str,
+ value: Any
) -> None: ...
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- class azure.mgmt.netapp.models.GetGroupIdListForLDAPUserRequest(_Model):
- username: str
+ class azure.mgmt.netapp.models.BackupPatchProperties(_Model):
+ label: Optional[str]
@overload
def __init__(
self,
*,
- username: str
+ label: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse(_Model):
- group_ids_for_ldap_user: Optional[list[str]]
+ class azure.mgmt.netapp.models.BackupPolicy(TrackedResource):
+ etag: Optional[str]
+ id: str
+ location: str
+ name: str
+ properties: BackupPolicyProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
def __init__(
self,
*,
- group_ids_for_ldap_user: Optional[list[str]] = ...
+ location: str,
+ properties: BackupPolicyProperties,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ def __setattr__(
+ self,
+ key: str,
+ value: Any
+ ) -> None: ...
+
- class azure.mgmt.netapp.models.GetKeyVaultStatusResponse(_Model):
- properties: Optional[GetKeyVaultStatusResponseProperties]
+ class azure.mgmt.netapp.models.BackupPolicyPatch(_Model):
+ id: Optional[str]
+ location: Optional[str]
+ name: Optional[str]
+ properties: Optional[BackupPolicyProperties]
+ tags: Optional[dict[str, str]]
+ type: Optional[str]
def __getattr__(self, name: str) -> Any: ...
@@ -4222,7 +4439,9 @@ namespace azure.mgmt.netapp.models
def __init__(
self,
*,
- properties: Optional[GetKeyVaultStatusResponseProperties] = ...
+ location: Optional[str] = ...,
+ properties: Optional[BackupPolicyProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
@@ -4235,327 +4454,284 @@ namespace azure.mgmt.netapp.models
) -> None: ...
- class azure.mgmt.netapp.models.GetKeyVaultStatusResponseProperties(_Model):
- key_name: Optional[str]
- key_vault_private_endpoints: Optional[list[KeyVaultPrivateEndpoint]]
- key_vault_resource_id: Optional[str]
- key_vault_uri: Optional[str]
+ class azure.mgmt.netapp.models.BackupPolicyProperties(_Model):
+ backup_policy_id: Optional[str]
+ daily_backups_to_keep: Optional[int]
+ enabled: Optional[bool]
+ monthly_backups_to_keep: Optional[int]
+ provisioning_state: Optional[str]
+ volume_backups: Optional[list[VolumeBackups]]
+ volumes_assigned: Optional[int]
+ weekly_backups_to_keep: Optional[int]
@overload
def __init__(
self,
*,
- key_name: Optional[str] = ...,
- key_vault_private_endpoints: Optional[list[KeyVaultPrivateEndpoint]] = ...,
- key_vault_resource_id: Optional[str] = ...,
- key_vault_uri: Optional[str] = ...
+ daily_backups_to_keep: Optional[int] = ...,
+ enabled: Optional[bool] = ...,
+ monthly_backups_to_keep: Optional[int] = ...,
+ weekly_backups_to_keep: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.GlobalFileLockingState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
-
-
- class azure.mgmt.netapp.models.HourlySchedule(_Model):
- minute: Optional[int]
- snapshots_to_keep: Optional[int]
- used_bytes: Optional[int]
+ class azure.mgmt.netapp.models.BackupProperties(_Model):
+ backup_id: Optional[str]
+ backup_policy_resource_id: Optional[str]
+ backup_type: Optional[Union[str, BackupType]]
+ completion_date: Optional[datetime]
+ creation_date: Optional[datetime]
+ failure_reason: Optional[str]
+ is_large_volume: Optional[bool]
+ label: Optional[str]
+ provisioning_state: Optional[str]
+ size: Optional[int]
+ snapshot_creation_date: Optional[datetime]
+ snapshot_name: Optional[str]
+ use_existing_snapshot: Optional[bool]
+ volume_resource_id: str
@overload
def __init__(
self,
*,
- minute: Optional[int] = ...,
- snapshots_to_keep: Optional[int] = ...,
- used_bytes: Optional[int] = ...
+ label: Optional[str] = ...,
+ snapshot_name: Optional[str] = ...,
+ use_existing_snapshot: Optional[bool] = ...,
+ volume_resource_id: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.InAvailabilityReasonType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ALREADY_EXISTS = "AlreadyExists"
- INVALID = "Invalid"
-
+ class azure.mgmt.netapp.models.BackupRestoreFiles(_Model):
+ destination_volume_id: str
+ file_list: list[str]
+ restore_file_path: Optional[str]
- class azure.mgmt.netapp.models.KerberosState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ @overload
+ def __init__(
+ self,
+ *,
+ destination_volume_id: str,
+ file_list: list[str],
+ restore_file_path: Optional[str] = ...
+ ) -> None: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.KeySource(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- MICROSOFT_KEY_VAULT = "Microsoft.KeyVault"
- MICROSOFT_NET_APP = "Microsoft.NetApp"
+ class azure.mgmt.netapp.models.BackupStatus(_Model):
+ error_message: Optional[str]
+ healthy: Optional[bool]
+ last_transfer_size: Optional[int]
+ last_transfer_type: Optional[str]
+ mirror_state: Optional[Union[str, MirrorState]]
+ relationship_status: Optional[Union[str, VolumeBackupRelationshipStatus]]
+ total_transfer_bytes: Optional[int]
+ transfer_progress_bytes: Optional[int]
+ unhealthy_reason: Optional[str]
- class azure.mgmt.netapp.models.KeyVaultPrivateEndpoint(_Model):
- private_endpoint_id: Optional[str]
- virtual_network_id: Optional[str]
- @overload
- def __init__(
- self,
- *,
- private_endpoint_id: Optional[str] = ...,
- virtual_network_id: Optional[str] = ...
- ) -> None: ...
+ class azure.mgmt.netapp.models.BackupType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ MANUAL = "Manual"
+ SCHEDULED = "Scheduled"
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ class azure.mgmt.netapp.models.BackupVault(TrackedResource):
+ id: str
+ location: str
+ name: str
+ properties: Optional[BackupVaultProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
- class azure.mgmt.netapp.models.KeyVaultProperties(_Model):
- key_name: str
- key_vault_id: Optional[str]
- key_vault_resource_id: Optional[str]
- key_vault_uri: str
- status: Optional[Union[str, KeyVaultStatus]]
+ def __getattr__(self, name: str) -> Any: ...
@overload
def __init__(
self,
*,
- key_name: str,
- key_vault_resource_id: Optional[str] = ...,
- key_vault_uri: str
+ location: str,
+ properties: Optional[BackupVaultProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- class azure.mgmt.netapp.models.KeyVaultStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- CREATED = "Created"
- DELETED = "Deleted"
- ERROR = "Error"
- IN_USE = "InUse"
- UPDATING = "Updating"
+ def __setattr__(
+ self,
+ key: str,
+ value: Any
+ ) -> None: ...
- class azure.mgmt.netapp.models.LdapSearchScopeOpt(_Model):
- group_dn: Optional[str]
- group_membership_filter: Optional[str]
- user_dn: Optional[str]
+ class azure.mgmt.netapp.models.BackupVaultPatch(_Model):
+ tags: Optional[dict[str, str]]
@overload
def __init__(
self,
*,
- group_dn: Optional[str] = ...,
- group_membership_filter: Optional[str] = ...,
- user_dn: Optional[str] = ...
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.LdapServerType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ACTIVE_DIRECTORY = "ActiveDirectory"
- OPEN_LDAP = "OpenLDAP"
-
-
- class azure.mgmt.netapp.models.LdapState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ class azure.mgmt.netapp.models.BackupVaultProperties(_Model):
+ provisioning_state: Optional[str]
- class azure.mgmt.netapp.models.ListQuotaReportResponse(_Model):
- quota_report_records: Optional[list[QuotaReport]]
+ class azure.mgmt.netapp.models.BackupsMigrationRequest(_Model):
+ backup_vault_id: str
@overload
def __init__(
self,
*,
- quota_report_records: Optional[list[QuotaReport]] = ...
+ backup_vault_id: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ListQuotaReportResult(_Model):
- properties: Optional[ListQuotaReportResponse]
+ class azure.mgmt.netapp.models.BindAuthenticationLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ANONYMOUS = "Anonymous"
+ SIMPLE = "Simple"
+
+
+ class azure.mgmt.netapp.models.BindPasswordAkvConfig(_Model):
+ azure_key_vault_uri: str
+ secret_name: str
+ user_assigned_identity: Optional[str]
@overload
def __init__(
self,
*,
- properties: Optional[ListQuotaReportResponse] = ...
+ azure_key_vault_uri: str,
+ secret_name: str,
+ user_assigned_identity: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ListReplicationsRequest(_Model):
- exclude: Optional[Union[str, Exclude]]
+ class azure.mgmt.netapp.models.BindPasswordAkvConfigPatch(_Model):
+ azure_key_vault_uri: Optional[str]
+ secret_name: Optional[str]
+ user_assigned_identity: Optional[str]
@overload
def __init__(
self,
*,
- exclude: Optional[Union[str, Exclude]] = ...
+ azure_key_vault_uri: Optional[str] = ...,
+ secret_name: Optional[str] = ...,
+ user_assigned_identity: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.LogSpecification(_Model):
- display_name: Optional[str]
- name: Optional[str]
+ class azure.mgmt.netapp.models.BreakFileLocksRequest(_Model):
+ client_ip: Optional[str]
+ confirm_running_disruptive_operation: Optional[bool]
@overload
def __init__(
self,
*,
- display_name: Optional[str] = ...,
- name: Optional[str] = ...
+ client_ip: Optional[str] = ...,
+ confirm_running_disruptive_operation: Optional[bool] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ManagedServiceIdentity(_Model):
- principal_id: Optional[str]
- tenant_id: Optional[str]
- type: Union[str, ManagedServiceIdentityType]
- user_assigned_identities: Optional[dict[str, UserAssignedIdentity]]
+ class azure.mgmt.netapp.models.BreakReplicationRequest(_Model):
+ force_break_replication: Optional[bool]
@overload
def __init__(
self,
*,
- type: Union[str, ManagedServiceIdentityType],
- user_assigned_identities: Optional[dict[str, UserAssignedIdentity]] = ...
+ force_break_replication: Optional[bool] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ManagedServiceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- NONE = "None"
- SYSTEM_ASSIGNED = "SystemAssigned"
- SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned,UserAssigned"
- USER_ASSIGNED = "UserAssigned"
-
+ class azure.mgmt.netapp.models.BreakthroughMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- class azure.mgmt.netapp.models.MetricAggregationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- AVERAGE = "Average"
+ class azure.mgmt.netapp.models.Bucket(ProxyResource):
+ id: str
+ name: str
+ properties: Optional[BucketProperties]
+ system_data: SystemData
+ type: str
- class azure.mgmt.netapp.models.MetricSpecification(_Model):
- aggregation_type: Optional[str]
- category: Optional[str]
- dimensions: Optional[list[Dimension]]
- display_description: Optional[str]
- display_name: Optional[str]
- enable_regional_mdm_account: Optional[bool]
- fill_gap_with_zero: Optional[bool]
- internal_metric_name: Optional[str]
- is_internal: Optional[bool]
- name: Optional[str]
- resource_id_dimension_name_override: Optional[str]
- source_mdm_account: Optional[str]
- source_mdm_namespace: Optional[str]
- supported_aggregation_types: Optional[list[Union[str, MetricAggregationType]]]
- supported_time_grain_types: Optional[list[str]]
- unit: Optional[str]
+ def __getattr__(self, name: str) -> Any: ...
@overload
def __init__(
self,
*,
- aggregation_type: Optional[str] = ...,
- category: Optional[str] = ...,
- dimensions: Optional[list[Dimension]] = ...,
- display_description: Optional[str] = ...,
- display_name: Optional[str] = ...,
- enable_regional_mdm_account: Optional[bool] = ...,
- fill_gap_with_zero: Optional[bool] = ...,
- internal_metric_name: Optional[str] = ...,
- is_internal: Optional[bool] = ...,
- name: Optional[str] = ...,
- resource_id_dimension_name_override: Optional[str] = ...,
- source_mdm_account: Optional[str] = ...,
- source_mdm_namespace: Optional[str] = ...,
- supported_aggregation_types: Optional[list[Union[str, MetricAggregationType]]] = ...,
- supported_time_grain_types: Optional[list[str]] = ...,
- unit: Optional[str] = ...
+ properties: Optional[BucketProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- class azure.mgmt.netapp.models.MirrorState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- BROKEN = "Broken"
- MIRRORED = "Mirrored"
- UNINITIALIZED = "Uninitialized"
-
-
- class azure.mgmt.netapp.models.MonthlySchedule(_Model):
- days_of_month: Optional[str]
- hour: Optional[int]
- minute: Optional[int]
- snapshots_to_keep: Optional[int]
- used_bytes: Optional[int]
-
- @overload
- def __init__(
+ def __setattr__(
self,
- *,
- days_of_month: Optional[str] = ...,
- hour: Optional[int] = ...,
- minute: Optional[int] = ...,
- snapshots_to_keep: Optional[int] = ...,
- used_bytes: Optional[int] = ...
+ key: str,
+ value: Any
) -> None: ...
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-
- class azure.mgmt.netapp.models.MountTargetProperties(_Model):
- file_system_id: str
- ip_address: Optional[str]
- mount_target_id: Optional[str]
- smb_server_fqdn: Optional[str]
+ class azure.mgmt.netapp.models.BucketCredentialsExpiry(_Model):
+ key_pair_expiry_days: Optional[int]
@overload
def __init__(
self,
*,
- file_system_id: str,
- smb_server_fqdn: Optional[str] = ...
+ key_pair_expiry_days: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.MultiAdStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ class azure.mgmt.netapp.models.BucketGenerateCredentials(_Model):
+ access_key: Optional[str]
+ key_pair_expiry: Optional[datetime]
+ secret_key: Optional[str]
- class azure.mgmt.netapp.models.NetAppAccount(TrackedResource):
- etag: Optional[str]
+ class azure.mgmt.netapp.models.BucketPatch(ProxyResource):
id: str
- identity: Optional[ManagedServiceIdentity]
- location: str
name: str
- properties: Optional[AccountProperties]
+ properties: Optional[BucketPatchProperties]
system_data: SystemData
- tags: dict[str, str]
type: str
def __getattr__(self, name: str) -> Any: ...
@@ -4564,10 +4740,7 @@ namespace azure.mgmt.netapp.models
def __init__(
self,
*,
- identity: Optional[ManagedServiceIdentity] = ...,
- location: str,
- properties: Optional[AccountProperties] = ...,
- tags: Optional[dict[str, str]] = ...
+ properties: Optional[BucketPatchProperties] = ...
) -> None: ...
@overload
@@ -4580,5322 +4753,9359 @@ namespace azure.mgmt.netapp.models
) -> None: ...
- class azure.mgmt.netapp.models.NetAppAccountPatch(_Model):
- id: Optional[str]
- identity: Optional[ManagedServiceIdentity]
- location: Optional[str]
- name: Optional[str]
- properties: Optional[AccountProperties]
- tags: Optional[dict[str, str]]
- type: Optional[str]
+ class azure.mgmt.netapp.models.BucketPatchPermissions(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ READ_ONLY = "ReadOnly"
+ READ_WRITE = "ReadWrite"
- def __getattr__(self, name: str) -> Any: ...
+
+ class azure.mgmt.netapp.models.BucketPatchProperties(_Model):
+ akv_details: Optional[AzureKeyVaultDetails]
+ file_system_user: Optional[FileSystemUser]
+ permissions: Optional[Union[str, BucketPatchPermissions]]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ server: Optional[BucketServerPatchProperties]
@overload
def __init__(
self,
*,
- identity: Optional[ManagedServiceIdentity] = ...,
- location: Optional[str] = ...,
- properties: Optional[AccountProperties] = ...,
- tags: Optional[dict[str, str]] = ...
+ akv_details: Optional[AzureKeyVaultDetails] = ...,
+ file_system_user: Optional[FileSystemUser] = ...,
+ permissions: Optional[Union[str, BucketPatchPermissions]] = ...,
+ server: Optional[BucketServerPatchProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
-
-
- class azure.mgmt.netapp.models.NetAppProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ACCEPTED = "Accepted"
- CREATING = "Creating"
- DELETING = "Deleting"
- FAILED = "Failed"
- MOVING = "Moving"
- PATCHING = "Patching"
- SUCCEEDED = "Succeeded"
- UPDATING = "Updating"
-
- class azure.mgmt.netapp.models.NetworkFeatures(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- BASIC = "Basic"
- BASIC_STANDARD = "Basic_Standard"
- STANDARD = "Standard"
- STANDARD_BASIC = "Standard_Basic"
+ class azure.mgmt.netapp.models.BucketPermissions(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ READ_ONLY = "ReadOnly"
+ READ_WRITE = "ReadWrite"
- class azure.mgmt.netapp.models.NetworkSiblingSet(_Model):
- network_features: Optional[Union[str, NetworkFeatures]]
- network_sibling_set_id: Optional[str]
- network_sibling_set_state_id: Optional[str]
- nic_info_list: Optional[list[NicInfo]]
- provisioning_state: Optional[Union[str, NetworkSiblingSetProvisioningState]]
- subnet_id: Optional[str]
+ class azure.mgmt.netapp.models.BucketProperties(_Model):
+ akv_details: Optional[AzureKeyVaultDetails]
+ file_system_user: Optional[FileSystemUser]
+ path: Optional[str]
+ permissions: Optional[Union[str, BucketPermissions]]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ server: Optional[BucketServerProperties]
+ status: Optional[Union[str, CredentialsStatus]]
@overload
def __init__(
self,
*,
- network_features: Optional[Union[str, NetworkFeatures]] = ...,
- network_sibling_set_id: Optional[str] = ...,
- network_sibling_set_state_id: Optional[str] = ...,
- nic_info_list: Optional[list[NicInfo]] = ...,
- subnet_id: Optional[str] = ...
+ akv_details: Optional[AzureKeyVaultDetails] = ...,
+ file_system_user: Optional[FileSystemUser] = ...,
+ path: Optional[str] = ...,
+ permissions: Optional[Union[str, BucketPermissions]] = ...,
+ server: Optional[BucketServerProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.NetworkSiblingSetProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- CANCELED = "Canceled"
- FAILED = "Failed"
- SUCCEEDED = "Succeeded"
- UPDATING = "Updating"
-
-
- class azure.mgmt.netapp.models.NfsUser(_Model):
- group_id: Optional[int]
- user_id: Optional[int]
+ class azure.mgmt.netapp.models.BucketServerPatchProperties(_Model):
+ certificate_object: Optional[str]
+ fqdn: Optional[str]
+ on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]]
@overload
def __init__(
self,
*,
- group_id: Optional[int] = ...,
- user_id: Optional[int] = ...
+ certificate_object: Optional[str] = ...,
+ fqdn: Optional[str] = ...,
+ on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.NicInfo(_Model):
+ class azure.mgmt.netapp.models.BucketServerProperties(_Model):
+ certificate_common_name: Optional[str]
+ certificate_expiry_date: Optional[datetime]
+ certificate_object: Optional[str]
+ fqdn: Optional[str]
ip_address: Optional[str]
- volume_resource_ids: Optional[list[str]]
+ on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]]
@overload
def __init__(
self,
*,
- volume_resource_ids: Optional[list[str]] = ...
+ certificate_object: Optional[str] = ...,
+ fqdn: Optional[str] = ...,
+ on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.OnCertificateConflictAction(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- FAIL = "Fail"
- UPDATE = "Update"
-
-
- class azure.mgmt.netapp.models.Operation(_Model):
- display: Optional[OperationDisplay]
- name: Optional[str]
- origin: Optional[str]
- properties: Optional[OperationProperties]
-
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.Cache(TrackedResource):
+ etag: Optional[str]
+ id: str
+ location: str
+ name: str
+ properties: CacheProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+ zones: Optional[list[str]]
@overload
def __init__(
self,
*,
- display: Optional[OperationDisplay] = ...,
- name: Optional[str] = ...,
- origin: Optional[str] = ...,
- properties: Optional[OperationProperties] = ...
+ location: str,
+ properties: CacheProperties,
+ tags: Optional[dict[str, str]] = ...,
+ zones: Optional[list[str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+ class azure.mgmt.netapp.models.CacheFileAccessLogs(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- class azure.mgmt.netapp.models.OperationDisplay(_Model):
- description: Optional[str]
- operation: Optional[str]
- provider: Optional[str]
- resource: Optional[str]
+
+ class azure.mgmt.netapp.models.CacheLifeCycleState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CLUSTER_PEERING_OFFER_SENT = "ClusterPeeringOfferSent"
+ CREATING = "Creating"
+ FAILED = "Failed"
+ SUCCEEDED = "Succeeded"
+ VSERVER_PEERING_OFFER_SENT = "VserverPeeringOfferSent"
+
+
+ class azure.mgmt.netapp.models.CacheMountTargetProperties(_Model):
+ ip_address: Optional[str]
+ mount_target_id: Optional[str]
+ smb_server_fqdn: Optional[str]
+
+
+ class azure.mgmt.netapp.models.CacheProperties(_Model):
+ actual_throughput_mibps: Optional[float]
+ cache_state: Optional[Union[str, CacheLifeCycleState]]
+ cache_subnet_resource_id: str
+ cifs_change_notifications: Optional[Union[str, CifsChangeNotifyState]]
+ encryption: Optional[Union[str, EncryptionState]]
+ encryption_key_source: Union[str, EncryptionKeySource]
+ export_policy: Optional[CachePropertiesExportPolicy]
+ file_access_logs: Optional[Union[str, CacheFileAccessLogs]]
+ file_path: str
+ global_file_locking: Optional[Union[str, GlobalFileLockingState]]
+ kerberos: Optional[Union[str, KerberosState]]
+ key_vault_private_endpoint_resource_id: Optional[str]
+ language: Optional[Union[str, VolumeLanguage]]
+ ldap: Optional[Union[str, LdapState]]
+ ldap_server_type: Optional[Union[str, LdapServerType]]
+ maximum_number_of_files: Optional[int]
+ mount_targets: Optional[list[CacheMountTargetProperties]]
+ origin_cluster_information: OriginClusterInformation
+ peering_subnet_resource_id: str
+ protocol_types: Optional[list[Union[str, ProtocolTypes]]]
+ provisioning_state: Optional[Union[str, CacheProvisioningState]]
+ size: int
+ smb_settings: Optional[SmbSettings]
+ throughput_mibps: Optional[float]
+ write_back: Optional[Union[str, EnableWriteBackState]]
@overload
def __init__(
self,
*,
- description: Optional[str] = ...,
- operation: Optional[str] = ...,
- provider: Optional[str] = ...,
- resource: Optional[str] = ...
+ cache_subnet_resource_id: str,
+ cifs_change_notifications: Optional[Union[str, CifsChangeNotifyState]] = ...,
+ encryption_key_source: Union[str, EncryptionKeySource],
+ export_policy: Optional[CachePropertiesExportPolicy] = ...,
+ file_path: str,
+ global_file_locking: Optional[Union[str, GlobalFileLockingState]] = ...,
+ kerberos: Optional[Union[str, KerberosState]] = ...,
+ key_vault_private_endpoint_resource_id: Optional[str] = ...,
+ ldap: Optional[Union[str, LdapState]] = ...,
+ ldap_server_type: Optional[Union[str, LdapServerType]] = ...,
+ origin_cluster_information: OriginClusterInformation,
+ peering_subnet_resource_id: str,
+ protocol_types: Optional[list[Union[str, ProtocolTypes]]] = ...,
+ size: int,
+ smb_settings: Optional[SmbSettings] = ...,
+ throughput_mibps: Optional[float] = ...,
+ write_back: Optional[Union[str, EnableWriteBackState]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.OperationProperties(_Model):
- service_specification: Optional[ServiceSpecification]
+ class azure.mgmt.netapp.models.CachePropertiesExportPolicy(_Model):
+ rules: Optional[list[ExportPolicyRule]]
@overload
def __init__(
self,
*,
- service_specification: Optional[ServiceSpecification] = ...
+ rules: Optional[list[ExportPolicyRule]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.OriginClusterInformation(_Model):
- peer_addresses: list[str]
- peer_cluster_name: str
- peer_volume_name: str
- peer_vserver_name: str
+ class azure.mgmt.netapp.models.CacheProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CANCELED = "Canceled"
+ CREATING = "Creating"
+ DELETING = "Deleting"
+ FAILED = "Failed"
+ SUCCEEDED = "Succeeded"
+ UPDATING = "Updating"
+
+
+ class azure.mgmt.netapp.models.CacheUpdate(_Model):
+ properties: Optional[CacheUpdateProperties]
+ tags: Optional[dict[str, str]]
@overload
def __init__(
self,
*,
- peer_addresses: list[str],
- peer_cluster_name: str,
- peer_volume_name: str,
- peer_vserver_name: str
+ properties: Optional[CacheUpdateProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.PeerClusterForVolumeMigrationRequest(_Model):
- peer_ip_addresses: list[str]
+ class azure.mgmt.netapp.models.CacheUpdateProperties(_Model):
+ cifs_change_notifications: Optional[Union[str, CifsChangeNotifyState]]
+ export_policy: Optional[CachePropertiesExportPolicy]
+ key_vault_private_endpoint_resource_id: Optional[str]
+ protocol_types: Optional[list[Union[str, ProtocolTypes]]]
+ size: Optional[int]
+ smb_settings: Optional[SmbSettings]
+ throughput_mibps: Optional[float]
+ write_back: Optional[Union[str, EnableWriteBackState]]
@overload
def __init__(
self,
*,
- peer_ip_addresses: list[str]
+ cifs_change_notifications: Optional[Union[str, CifsChangeNotifyState]] = ...,
+ export_policy: Optional[CachePropertiesExportPolicy] = ...,
+ key_vault_private_endpoint_resource_id: Optional[str] = ...,
+ protocol_types: Optional[list[Union[str, ProtocolTypes]]] = ...,
+ size: Optional[int] = ...,
+ smb_settings: Optional[SmbSettings] = ...,
+ throughput_mibps: Optional[float] = ...,
+ write_back: Optional[Union[str, EnableWriteBackState]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.PeeringPassphrases(_Model):
- cluster_peering_command: str
- cluster_peering_passphrase: str
- critical_warning: Optional[str]
- vserver_peering_command: str
+ class azure.mgmt.netapp.models.CapacityPool(TrackedResource):
+ etag: Optional[str]
+ id: str
+ location: str
+ name: str
+ properties: PoolProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
def __init__(
self,
*,
- cluster_peering_command: str,
- cluster_peering_passphrase: str,
- vserver_peering_command: str
+ location: str,
+ properties: PoolProperties,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ def __setattr__(
+ self,
+ key: str,
+ value: Any
+ ) -> None: ...
+
- class azure.mgmt.netapp.models.PlacementKeyValuePairs(_Model):
- key: str
- value: str
+ class azure.mgmt.netapp.models.CapacityPoolPatch(_Model):
+ id: Optional[str]
+ location: Optional[str]
+ name: Optional[str]
+ properties: Optional[PoolPatchProperties]
+ tags: Optional[dict[str, str]]
+ type: Optional[str]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
def __init__(
self,
*,
- key: str,
- value: str
+ location: Optional[str] = ...,
+ properties: Optional[PoolPatchProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ def __setattr__(
+ self,
+ key: str,
+ value: Any
+ ) -> None: ...
+
- class azure.mgmt.netapp.models.PoolChangeRequest(_Model):
- new_pool_resource_id: str
+ class azure.mgmt.netapp.models.CertificateAkvDetails(_Model):
+ certificate_key_vault_uri: Optional[str]
+ certificate_name: Optional[str]
+ user_assigned_identity: Optional[str]
@overload
def __init__(
self,
*,
- new_pool_resource_id: str
+ certificate_key_vault_uri: Optional[str] = ...,
+ certificate_name: Optional[str] = ...,
+ user_assigned_identity: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.PoolPatchProperties(_Model):
- cool_access: Optional[bool]
- custom_throughput_mibps: Optional[int]
- qos_type: Optional[Union[str, QosType]]
- size: Optional[int]
+ class azure.mgmt.netapp.models.ChangeKeyVault(_Model):
+ key_name: str
+ key_vault_private_endpoints: list[KeyVaultPrivateEndpoint]
+ key_vault_resource_id: Optional[str]
+ key_vault_uri: str
@overload
def __init__(
self,
*,
- cool_access: Optional[bool] = ...,
- custom_throughput_mibps: Optional[int] = ...,
- qos_type: Optional[Union[str, QosType]] = ...,
- size: Optional[int] = ...
+ key_name: str,
+ key_vault_private_endpoints: list[KeyVaultPrivateEndpoint],
+ key_vault_resource_id: Optional[str] = ...,
+ key_vault_uri: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.PoolProperties(_Model):
- cool_access: Optional[bool]
- custom_throughput_mibps: Optional[int]
- encryption_type: Optional[Union[str, EncryptionType]]
- pool_id: Optional[str]
- provisioning_state: Optional[str]
- qos_type: Optional[Union[str, QosType]]
- service_level: Union[str, ServiceLevel]
- size: int
- total_throughput_mibps: Optional[float]
- utilized_throughput_mibps: Optional[float]
+ class azure.mgmt.netapp.models.ChangeZoneRequest(_Model):
+ new_zone: str
@overload
def __init__(
self,
*,
- cool_access: Optional[bool] = ...,
- custom_throughput_mibps: Optional[int] = ...,
- encryption_type: Optional[Union[str, EncryptionType]] = ...,
- qos_type: Optional[Union[str, QosType]] = ...,
- service_level: Union[str, ServiceLevel],
- size: int
+ new_zone: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ProtocolTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- NF_SV3 = "NFSv3"
- NF_SV4 = "NFSv4"
- SMB = "SMB"
-
-
- class azure.mgmt.netapp.models.ProxyResource(Resource):
- id: str
- name: str
- system_data: SystemData
- type: str
-
-
- class azure.mgmt.netapp.models.QosType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- AUTO = "Auto"
- MANUAL = "Manual"
-
-
- class azure.mgmt.netapp.models.QueryNetworkSiblingSetRequest(_Model):
- network_sibling_set_id: str
- subnet_id: str
+ class azure.mgmt.netapp.models.CheckAvailabilityResponse(_Model):
+ is_available: Optional[bool]
+ message: Optional[str]
+ reason: Optional[Union[str, InAvailabilityReasonType]]
@overload
def __init__(
self,
*,
- network_sibling_set_id: str,
- subnet_id: str
+ is_available: Optional[bool] = ...,
+ message: Optional[str] = ...,
+ reason: Optional[Union[str, InAvailabilityReasonType]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.QuotaAvailabilityRequest(_Model):
- name: str
- resource_group: str
- type: Union[str, CheckQuotaNameResourceTypes]
+ class azure.mgmt.netapp.models.CheckElasticResourceAvailabilityReason(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ALREADY_EXISTS = "AlreadyExists"
+ INVALID = "Invalid"
+
+
+ class azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse(_Model):
+ is_available: Optional[Union[str, CheckElasticResourceAvailabilityStatus]]
+ message: Optional[str]
+ reason: Optional[Union[str, CheckElasticResourceAvailabilityReason]]
@overload
def __init__(
self,
*,
- name: str,
- resource_group: str,
- type: Union[str, CheckQuotaNameResourceTypes]
+ is_available: Optional[Union[str, CheckElasticResourceAvailabilityStatus]] = ...,
+ message: Optional[str] = ...,
+ reason: Optional[Union[str, CheckElasticResourceAvailabilityReason]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.QuotaItem(ProxyResource):
- id: str
- name: str
- properties: Optional[QuotaItemProperties]
- system_data: SystemData
- type: str
+ class azure.mgmt.netapp.models.CheckElasticResourceAvailabilityStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ FALSE = "False"
+ TRUE = "True"
- def __getattr__(self, name: str) -> Any: ...
+
+ class azure.mgmt.netapp.models.CheckElasticVolumeFilePathAvailabilityRequest(_Model):
+ file_path: str
@overload
def __init__(
self,
*,
- properties: Optional[QuotaItemProperties] = ...
+ file_path: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+ class azure.mgmt.netapp.models.CheckNameResourceTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS = "Microsoft.NetApp/netAppAccounts"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_BACKUP_VAULTS_BACKUPS = "Microsoft.NetApp/netAppAccounts/backupVaults/backups"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS = "Microsoft.NetApp/netAppAccounts/capacityPools"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES_BACKUPS = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES_SNAPSHOTS = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots"
- class azure.mgmt.netapp.models.QuotaItemProperties(_Model):
- current: Optional[int]
- default: Optional[int]
- usage: Optional[int]
+ class azure.mgmt.netapp.models.CheckQuotaNameResourceTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS = "Microsoft.NetApp/netAppAccounts"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_BACKUP_VAULTS_BACKUPS = "Microsoft.NetApp/netAppAccounts/backupVaults/backups"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS = "Microsoft.NetApp/netAppAccounts/capacityPools"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES_BACKUPS = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/backups"
+ MICROSOFT_NET_APP_NET_APP_ACCOUNTS_CAPACITY_POOLS_VOLUMES_SNAPSHOTS = "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots"
- class azure.mgmt.netapp.models.QuotaReport(_Model):
- is_derived_quota: Optional[bool]
- percentage_used: Optional[float]
- quota_limit_total_in_ki_bs: Optional[int]
- quota_limit_used_in_ki_bs: Optional[int]
- quota_target: Optional[str]
- quota_type: Optional[Union[str, QuotaType]]
+
+ class azure.mgmt.netapp.models.ChownMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ RESTRICTED = "Restricted"
+ UNRESTRICTED = "Unrestricted"
+
+
+ class azure.mgmt.netapp.models.CifsChangeNotifyState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.CifsUser(_Model):
+ username: Optional[str]
@overload
def __init__(
self,
*,
- is_derived_quota: Optional[bool] = ...,
- percentage_used: Optional[float] = ...,
- quota_limit_total_in_ki_bs: Optional[int] = ...,
- quota_limit_used_in_ki_bs: Optional[int] = ...,
- quota_target: Optional[str] = ...,
- quota_type: Optional[Union[str, QuotaType]] = ...
+ username: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.QuotaReportFilterRequest(_Model):
- quota_target: Optional[str]
- quota_type: Optional[Union[str, QuotaType]]
- usage_threshold_percentage: Optional[int]
+ class azure.mgmt.netapp.models.ClusterPeerCommandResponse(_Model):
+ properties: Optional[ClusterPeerCommandResponseProperties]
@overload
def __init__(
self,
*,
- quota_target: Optional[str] = ...,
- quota_type: Optional[Union[str, QuotaType]] = ...,
- usage_threshold_percentage: Optional[int] = ...
+ properties: Optional[ClusterPeerCommandResponseProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.QuotaType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DEFAULT_GROUP_QUOTA = "DefaultGroupQuota"
- DEFAULT_USER_QUOTA = "DefaultUserQuota"
- INDIVIDUAL_GROUP_QUOTA = "IndividualGroupQuota"
- INDIVIDUAL_USER_QUOTA = "IndividualUserQuota"
-
-
- class azure.mgmt.netapp.models.RansomwareProtectionPatchSettings(_Model):
- desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]]
+ class azure.mgmt.netapp.models.ClusterPeerCommandResponseProperties(_Model):
+ cluster_peering_command: Optional[str]
+ passphrase: Optional[str]
@overload
def __init__(
self,
*,
- desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] = ...
+ cluster_peering_command: Optional[str] = ...,
+ passphrase: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RansomwareProtectionSettings(_Model):
- actual_ransomware_protection_state: Optional[Union[str, ActualRansomwareProtectionState]]
- desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]]
+ class azure.mgmt.netapp.models.CoolAccessRetrievalPolicy(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DEFAULT = "Default"
+ NEVER = "Never"
+ ON_READ = "OnRead"
+
+
+ class azure.mgmt.netapp.models.CoolAccessTieringPolicy(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ AUTO = "Auto"
+ SNAPSHOT_ONLY = "SnapshotOnly"
+
+
+ class azure.mgmt.netapp.models.CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ APPLICATION = "Application"
+ KEY = "Key"
+ MANAGED_IDENTITY = "ManagedIdentity"
+ USER = "User"
+
+
+ class azure.mgmt.netapp.models.CredentialsAkvDetails(_Model):
+ credentials_key_vault_uri: Optional[str]
+ secret_name: Optional[str]
+ user_assigned_identity: Optional[str]
@overload
def __init__(
self,
*,
- desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] = ...
+ credentials_key_vault_uri: Optional[str] = ...,
+ secret_name: Optional[str] = ...,
+ user_assigned_identity: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RansomwareReport(ProxyResource):
- id: str
- name: str
- properties: Optional[RansomwareReportProperties]
- system_data: SystemData
- type: str
+ class azure.mgmt.netapp.models.CredentialsStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ACTIVE = "Active"
+ CREDENTIALS_EXPIRED = "CredentialsExpired"
+ NO_CREDENTIALS_SET = "NoCredentialsSet"
+
+
+ class azure.mgmt.netapp.models.DailySchedule(_Model):
+ hour: Optional[int]
+ minute: Optional[int]
+ snapshots_to_keep: Optional[int]
+ used_bytes: Optional[int]
@overload
def __init__(
self,
*,
- properties: Optional[RansomwareReportProperties] = ...
+ hour: Optional[int] = ...,
+ minute: Optional[int] = ...,
+ snapshots_to_keep: Optional[int] = ...,
+ used_bytes: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RansomwareReportProperties(_Model):
- cleared_count: Optional[int]
- event_time: Optional[datetime]
- provisioning_state: Optional[str]
- reported_count: Optional[int]
- severity: Optional[Union[str, RansomwareReportSeverity]]
- state: Optional[Union[str, RansomwareReportState]]
- suspects: Optional[list[RansomwareSuspects]]
+ class azure.mgmt.netapp.models.DayOfWeek(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ FRIDAY = "Friday"
+ MONDAY = "Monday"
+ SATURDAY = "Saturday"
+ SUNDAY = "Sunday"
+ THURSDAY = "Thursday"
+ TUESDAY = "Tuesday"
+ WEDNESDAY = "Wednesday"
- class azure.mgmt.netapp.models.RansomwareReportSeverity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- HIGH = "High"
- LOW = "Low"
- MODERATE = "Moderate"
- NONE = "None"
+ class azure.mgmt.netapp.models.DesiredRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- class azure.mgmt.netapp.models.RansomwareReportState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ACTIVE = "Active"
- RESOLVED = "Resolved"
+ class azure.mgmt.netapp.models.DestinationReplication(_Model):
+ region: Optional[str]
+ replication_type: Optional[Union[str, ReplicationType]]
+ resource_id: Optional[str]
+ zone: Optional[str]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ region: Optional[str] = ...,
+ replication_type: Optional[Union[str, ReplicationType]] = ...,
+ resource_id: Optional[str] = ...,
+ zone: Optional[str] = ...
+ ) -> None: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RansomwareSuspectResolution(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- FALSE_POSITIVE = "FalsePositive"
- POTENTIAL_THREAT = "PotentialThreat"
+ class azure.mgmt.netapp.models.Dimension(_Model):
+ display_name: Optional[str]
+ name: Optional[str]
- class azure.mgmt.netapp.models.RansomwareSuspects(_Model):
- extension: Optional[str]
- file_count: Optional[int]
- resolution: Optional[Union[str, RansomwareSuspectResolution]]
- suspect_files: Optional[list[SuspectFile]]
+ @overload
+ def __init__(
+ self,
+ *,
+ display_name: Optional[str] = ...,
+ name: Optional[str] = ...
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RansomwareSuspectsClearRequest(_Model):
- extensions: list[str]
- resolution: Union[str, RansomwareSuspectResolution]
+ class azure.mgmt.netapp.models.ElasticAccount(TrackedResource):
+ e_tag: Optional[str]
+ id: str
+ identity: Optional[ManagedServiceIdentity]
+ location: str
+ name: str
+ properties: Optional[ElasticAccountProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
@overload
def __init__(
self,
*,
- extensions: list[str],
- resolution: Union[str, RansomwareSuspectResolution]
+ identity: Optional[ManagedServiceIdentity] = ...,
+ location: str,
+ properties: Optional[ElasticAccountProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ReestablishReplicationRequest(_Model):
- source_volume_id: Optional[str]
+ class azure.mgmt.netapp.models.ElasticAccountProperties(_Model):
+ encryption: Optional[ElasticEncryption]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
@overload
def __init__(
self,
*,
- source_volume_id: Optional[str] = ...
+ encryption: Optional[ElasticEncryption] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RegionInfo(_Model):
- availability_zone_mappings: Optional[list[RegionInfoAvailabilityZoneMappingsItem]]
- storage_to_network_proximity: Optional[Union[str, RegionStorageToNetworkProximity]]
+ class azure.mgmt.netapp.models.ElasticAccountUpdate(_Model):
+ identity: Optional[ManagedServiceIdentity]
+ properties: Optional[ElasticAccountUpdateProperties]
+ tags: Optional[dict[str, str]]
@overload
def __init__(
self,
*,
- availability_zone_mappings: Optional[list[RegionInfoAvailabilityZoneMappingsItem]] = ...,
- storage_to_network_proximity: Optional[Union[str, RegionStorageToNetworkProximity]] = ...
+ identity: Optional[ManagedServiceIdentity] = ...,
+ properties: Optional[ElasticAccountUpdateProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RegionInfoAvailabilityZoneMappingsItem(_Model):
- availability_zone: Optional[str]
- is_available: Optional[bool]
+ class azure.mgmt.netapp.models.ElasticAccountUpdateProperties(_Model):
+ encryption: Optional[ElasticEncryption]
@overload
def __init__(
self,
*,
- availability_zone: Optional[str] = ...,
- is_available: Optional[bool] = ...
+ encryption: Optional[ElasticEncryption] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RegionInfoResource(ProxyResource):
+ class azure.mgmt.netapp.models.ElasticBackup(ProxyResource):
id: str
name: str
- properties: Optional[RegionInfo]
+ properties: Optional[ElasticBackupProperties]
system_data: SystemData
type: str
- def __getattr__(self, name: str) -> Any: ...
-
@overload
def __init__(
self,
*,
- properties: Optional[RegionInfo] = ...
+ properties: Optional[ElasticBackupProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
+
+ class azure.mgmt.netapp.models.ElasticBackupPolicy(TrackedResource):
+ e_tag: Optional[str]
+ id: str
+ location: str
+ name: str
+ properties: Optional[ElasticBackupPolicyProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+ @overload
+ def __init__(
self,
- key: str,
- value: Any
+ *,
+ location: str,
+ properties: Optional[ElasticBackupPolicyProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
-
- class azure.mgmt.netapp.models.RegionStorageToNetworkProximity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ACROSS_T2 = "AcrossT2"
- DEFAULT = "Default"
- T1 = "T1"
- T1_AND_ACROSS_T2 = "T1AndAcrossT2"
- T1_AND_T2 = "T1AndT2"
- T1_AND_T2_AND_ACROSS_T2 = "T1AndT2AndAcrossT2"
- T2 = "T2"
- T2_AND_ACROSS_T2 = "T2AndAcrossT2"
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RelocateVolumeRequest(_Model):
- creation_token: Optional[str]
+ class azure.mgmt.netapp.models.ElasticBackupPolicyProperties(_Model):
+ assigned_volumes_count: Optional[int]
+ daily_backups_to_keep: Optional[int]
+ monthly_backups_to_keep: Optional[int]
+ policy_state: Optional[Union[str, ElasticBackupPolicyState]]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ weekly_backups_to_keep: Optional[int]
@overload
def __init__(
self,
*,
- creation_token: Optional[str] = ...
+ daily_backups_to_keep: Optional[int] = ...,
+ monthly_backups_to_keep: Optional[int] = ...,
+ policy_state: Optional[Union[str, ElasticBackupPolicyState]] = ...,
+ weekly_backups_to_keep: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RemotePath(_Model):
- external_host_name: str
- server_name: str
- volume_name: str
+ class azure.mgmt.netapp.models.ElasticBackupPolicyState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.ElasticBackupPolicyUpdate(_Model):
+ properties: Optional[ElasticBackupPolicyUpdateProperties]
+ tags: Optional[dict[str, str]]
@overload
def __init__(
self,
*,
- external_host_name: str,
- server_name: str,
- volume_name: str
+ properties: Optional[ElasticBackupPolicyUpdateProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.Replication(_Model):
- endpoint_type: Optional[Union[str, EndpointType]]
- mirror_state: Optional[Union[str, ReplicationMirrorState]]
- remote_volume_region: Optional[str]
- remote_volume_resource_id: Optional[str]
- replication_creation_time: Optional[datetime]
- replication_deletion_time: Optional[datetime]
- replication_id: Optional[str]
- replication_schedule: Optional[Union[str, ReplicationSchedule]]
+ class azure.mgmt.netapp.models.ElasticBackupPolicyUpdateProperties(_Model):
+ daily_backups_to_keep: Optional[int]
+ monthly_backups_to_keep: Optional[int]
+ policy_state: Optional[Union[str, ElasticBackupPolicyState]]
+ weekly_backups_to_keep: Optional[int]
@overload
def __init__(
self,
*,
- endpoint_type: Optional[Union[str, EndpointType]] = ...,
- remote_volume_region: Optional[str] = ...,
- remote_volume_resource_id: Optional[str] = ...,
- replication_schedule: Optional[Union[str, ReplicationSchedule]] = ...
+ daily_backups_to_keep: Optional[int] = ...,
+ monthly_backups_to_keep: Optional[int] = ...,
+ policy_state: Optional[Union[str, ElasticBackupPolicyState]] = ...,
+ weekly_backups_to_keep: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ReplicationMirrorState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- BROKEN = "Broken"
- MIRRORED = "Mirrored"
- UNINITIALIZED = "Uninitialized"
-
-
- class azure.mgmt.netapp.models.ReplicationObject(_Model):
- destination_replications: Optional[list[DestinationReplication]]
- endpoint_type: Optional[Union[str, EndpointType]]
- external_replication_setup_info: Optional[str]
- external_replication_setup_status: Optional[Union[str, ExternalReplicationSetupStatus]]
- mirror_state: Optional[Union[str, MirrorState]]
- relationship_status: Optional[Union[str, VolumeReplicationRelationshipStatus]]
- remote_path: Optional[RemotePath]
- remote_volume_region: Optional[str]
- remote_volume_resource_id: Optional[str]
- replication_id: Optional[str]
- replication_schedule: Optional[Union[str, ReplicationSchedule]]
+ class azure.mgmt.netapp.models.ElasticBackupProperties(_Model):
+ backup_type: Optional[Union[str, ElasticBackupType]]
+ completion_date: Optional[datetime]
+ creation_date: Optional[datetime]
+ elastic_backup_policy_resource_id: Optional[str]
+ elastic_snapshot_resource_id: Optional[str]
+ elastic_volume_resource_id: str
+ failure_reason: Optional[str]
+ label: Optional[str]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ size: Optional[int]
+ snapshot_creation_date: Optional[datetime]
+ snapshot_usage: Optional[Union[str, SnapshotUsage]]
+ volume_size: Optional[Union[str, VolumeSize]]
@overload
def __init__(
self,
*,
- remote_path: Optional[RemotePath] = ...,
- remote_volume_region: Optional[str] = ...,
- remote_volume_resource_id: Optional[str] = ...,
- replication_schedule: Optional[Union[str, ReplicationSchedule]] = ...
+ elastic_snapshot_resource_id: Optional[str] = ...,
+ elastic_volume_resource_id: str,
+ label: Optional[str] = ...,
+ snapshot_usage: Optional[Union[str, SnapshotUsage]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ReplicationSchedule(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DAILY = "daily"
- ENUM_10_MINUTELY = "_10minutely"
- HOURLY = "hourly"
+ class azure.mgmt.netapp.models.ElasticBackupType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ MANUAL = "Manual"
+ SCHEDULED = "Scheduled"
- class azure.mgmt.netapp.models.ReplicationStatus(_Model):
- error_message: Optional[str]
- healthy: Optional[bool]
- mirror_state: Optional[Union[str, MirrorState]]
- relationship_status: Optional[Union[str, VolumeReplicationRelationshipStatus]]
- total_progress: Optional[str]
+ class azure.mgmt.netapp.models.ElasticBackupVault(TrackedResource):
+ e_tag: Optional[str]
+ id: str
+ location: str
+ name: str
+ properties: Optional[ElasticBackupVaultProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
@overload
def __init__(
self,
*,
- error_message: Optional[str] = ...,
- healthy: Optional[bool] = ...,
- mirror_state: Optional[Union[str, MirrorState]] = ...,
- relationship_status: Optional[Union[str, VolumeReplicationRelationshipStatus]] = ...,
- total_progress: Optional[str] = ...
+ location: str,
+ properties: Optional[ElasticBackupVaultProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ReplicationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- CROSS_REGION_REPLICATION = "CrossRegionReplication"
- CROSS_ZONE_REPLICATION = "CrossZoneReplication"
+ class azure.mgmt.netapp.models.ElasticBackupVaultProperties(_Model):
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
- class azure.mgmt.netapp.models.Resource(_Model):
- id: Optional[str]
- name: Optional[str]
- system_data: Optional[SystemData]
- type: Optional[str]
+ class azure.mgmt.netapp.models.ElasticBackupVaultUpdate(_Model):
+ tags: Optional[dict[str, str]]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ tags: Optional[dict[str, str]] = ...
+ ) -> None: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ResourceNameAvailabilityRequest(_Model):
+
+ class azure.mgmt.netapp.models.ElasticCapacityPool(TrackedResource):
+ e_tag: Optional[str]
+ id: str
+ location: str
name: str
- resource_group: str
- type: Union[str, CheckNameResourceTypes]
+ properties: Optional[ElasticCapacityPoolProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+ zones: Optional[list[str]]
@overload
def __init__(
self,
*,
- name: str,
- resource_group: str,
- type: Union[str, CheckNameResourceTypes]
+ location: str,
+ properties: Optional[ElasticCapacityPoolProperties] = ...,
+ tags: Optional[dict[str, str]] = ...,
+ zones: Optional[list[str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.RestoreStatus(_Model):
- error_message: Optional[str]
- healthy: Optional[bool]
- mirror_state: Optional[Union[str, MirrorState]]
- relationship_status: Optional[Union[str, VolumeRestoreRelationshipStatus]]
- total_transfer_bytes: Optional[int]
- unhealthy_reason: Optional[str]
-
-
- class azure.mgmt.netapp.models.SecurityStyle(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- NTFS = "ntfs"
- UNIX = "unix"
+ class azure.mgmt.netapp.models.ElasticCapacityPoolProperties(_Model):
+ active_directory_config_resource_id: Optional[str]
+ availability_status: Optional[Union[str, ElasticResourceAvailabilityStatus]]
+ current_zone: Optional[str]
+ encryption: Optional[ElasticEncryptionConfiguration]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ service_level: Union[str, ElasticServiceLevel]
+ size: int
+ subnet_resource_id: str
+ total_throughput_mibps: Optional[float]
+ @overload
+ def __init__(
+ self,
+ *,
+ active_directory_config_resource_id: Optional[str] = ...,
+ encryption: Optional[ElasticEncryptionConfiguration] = ...,
+ service_level: Union[str, ElasticServiceLevel],
+ size: int,
+ subnet_resource_id: str
+ ) -> None: ...
- class azure.mgmt.netapp.models.ServiceLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- FLEXIBLE = "Flexible"
- PREMIUM = "Premium"
- STANDARD = "Standard"
- STANDARD_ZRS = "StandardZRS"
- ULTRA = "Ultra"
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.ServiceSpecification(_Model):
- log_specifications: Optional[list[LogSpecification]]
- metric_specifications: Optional[list[MetricSpecification]]
+ class azure.mgmt.netapp.models.ElasticCapacityPoolUpdate(_Model):
+ properties: Optional[ElasticCapacityPoolUpdateProperties]
+ tags: Optional[dict[str, str]]
@overload
def __init__(
self,
*,
- log_specifications: Optional[list[LogSpecification]] = ...,
- metric_specifications: Optional[list[MetricSpecification]] = ...
+ properties: Optional[ElasticCapacityPoolUpdateProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SmbAccessBasedEnumeration(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
-
-
- class azure.mgmt.netapp.models.SmbEncryptionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ class azure.mgmt.netapp.models.ElasticCapacityPoolUpdateProperties(_Model):
+ active_directory_config_resource_id: Optional[str]
+ encryption: Optional[ElasticEncryptionConfiguration]
+ size: Optional[int]
+ @overload
+ def __init__(
+ self,
+ *,
+ active_directory_config_resource_id: Optional[str] = ...,
+ encryption: Optional[ElasticEncryptionConfiguration] = ...,
+ size: Optional[int] = ...
+ ) -> None: ...
- class azure.mgmt.netapp.models.SmbNonBrowsable(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- DISABLED = "Disabled"
- ENABLED = "Enabled"
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SmbSettings(_Model):
- smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]]
- smb_encryption: Optional[Union[str, SmbEncryptionState]]
- smb_non_browsable: Optional[Union[str, SmbNonBrowsable]]
+ class azure.mgmt.netapp.models.ElasticEncryption(_Model):
+ identity: Optional[ElasticEncryptionIdentity]
+ key_source: Optional[Union[str, KeySource]]
+ key_vault_properties: Optional[ElasticKeyVaultProperties]
@overload
def __init__(
self,
*,
- smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]] = ...,
- smb_encryption: Optional[Union[str, SmbEncryptionState]] = ...,
- smb_non_browsable: Optional[Union[str, SmbNonBrowsable]] = ...
+ identity: Optional[ElasticEncryptionIdentity] = ...,
+ key_source: Optional[Union[str, KeySource]] = ...,
+ key_vault_properties: Optional[ElasticKeyVaultProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.Snapshot(ProxyResource):
- id: str
- location: str
- name: str
- properties: Optional[SnapshotProperties]
- system_data: SystemData
- type: str
-
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.ElasticEncryptionConfiguration(_Model):
+ elastic_pool_encryption_key_source: Union[str, ElasticPoolEncryptionKeySource]
+ key_vault_private_endpoint_resource_id: str
@overload
def __init__(
self,
*,
- location: str,
- properties: Optional[SnapshotProperties] = ...
+ elastic_pool_encryption_key_source: Union[str, ElasticPoolEncryptionKeySource],
+ key_vault_private_endpoint_resource_id: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+ class azure.mgmt.netapp.models.ElasticEncryptionIdentity(_Model):
+ federated_client_id: Optional[str]
+ principal_id: Optional[str]
+ user_assigned_identity: Optional[str]
- class azure.mgmt.netapp.models.SnapshotPatch(_Model):
+ @overload
+ def __init__(
+ self,
+ *,
+ federated_client_id: Optional[str] = ...,
+ user_assigned_identity: Optional[str] = ...
+ ) -> None: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SnapshotPolicy(TrackedResource):
- etag: Optional[str]
- id: str
- location: str
- name: str
- properties: SnapshotPolicyProperties
- system_data: SystemData
- tags: dict[str, str]
- type: str
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.ElasticExportPolicy(_Model):
+ rules: Optional[list[ElasticExportPolicyRule]]
@overload
def __init__(
self,
*,
- location: str,
- properties: SnapshotPolicyProperties,
- tags: Optional[dict[str, str]] = ...
+ rules: Optional[list[ElasticExportPolicyRule]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
+
+ class azure.mgmt.netapp.models.ElasticExportPolicyRule(_Model):
+ allowed_clients: Optional[list[str]]
+ nfsv3: Optional[Union[str, ElasticNfsv3Access]]
+ nfsv4: Optional[Union[str, ElasticNfsv4Access]]
+ root_access: Optional[Union[str, ElasticRootAccess]]
+ rule_index: Optional[int]
+ unix_access_rule: Optional[Union[str, ElasticUnixAccessRule]]
+
+ @overload
+ def __init__(
self,
- key: str,
- value: Any
+ *,
+ allowed_clients: Optional[list[str]] = ...,
+ nfsv3: Optional[Union[str, ElasticNfsv3Access]] = ...,
+ nfsv4: Optional[Union[str, ElasticNfsv4Access]] = ...,
+ root_access: Optional[Union[str, ElasticRootAccess]] = ...,
+ rule_index: Optional[int] = ...,
+ unix_access_rule: Optional[Union[str, ElasticUnixAccessRule]] = ...
) -> None: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SnapshotPolicyPatch(_Model):
- id: Optional[str]
- location: Optional[str]
- name: Optional[str]
- properties: Optional[SnapshotPolicyProperties]
- tags: Optional[dict[str, str]]
- type: Optional[str]
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.ElasticKeyVaultProperties(_Model):
+ key_name: Optional[str]
+ key_vault_resource_id: Optional[str]
+ key_vault_uri: Optional[str]
+ status: Optional[Union[str, ElasticKeyVaultStatus]]
@overload
def __init__(
self,
*,
- location: Optional[str] = ...,
- properties: Optional[SnapshotPolicyProperties] = ...,
- tags: Optional[dict[str, str]] = ...
+ key_name: Optional[str] = ...,
+ key_vault_resource_id: Optional[str] = ...,
+ key_vault_uri: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+
+ class azure.mgmt.netapp.models.ElasticKeyVaultStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CREATED = "Created"
+ DELETED = "Deleted"
+ ERROR = "Error"
+ IN_USE = "InUse"
+ UPDATING = "Updating"
- class azure.mgmt.netapp.models.SnapshotPolicyProperties(_Model):
- daily_schedule: Optional[DailySchedule]
- enabled: Optional[bool]
- hourly_schedule: Optional[HourlySchedule]
- monthly_schedule: Optional[MonthlySchedule]
- provisioning_state: Optional[str]
- weekly_schedule: Optional[WeeklySchedule]
+ class azure.mgmt.netapp.models.ElasticMountTargetProperties(_Model):
+ ip_address: Optional[str]
+ smb_server_fqdn: Optional[str]
+
+
+ class azure.mgmt.netapp.models.ElasticNfsv3Access(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.ElasticNfsv4Access(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.ElasticPoolEncryptionKeySource(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ KEY_VAULT = "KeyVault"
+ NET_APP = "NetApp"
+
+
+ class azure.mgmt.netapp.models.ElasticProtocolType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ NF_SV3 = "NFSv3"
+ NF_SV4 = "NFSv4"
+ SMB = "SMB"
+
+
+ class azure.mgmt.netapp.models.ElasticResourceAvailabilityStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ OFFLINE = "Offline"
+ ONLINE = "Online"
+
+
+ class azure.mgmt.netapp.models.ElasticRootAccess(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.ElasticServiceLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ZONE_REDUNDANT = "ZoneRedundant"
+
+
+ class azure.mgmt.netapp.models.ElasticSmbEncryption(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.ElasticSmbPatchProperties(_Model):
+ smb_encryption: Optional[Union[str, ElasticSmbEncryption]]
@overload
def __init__(
self,
*,
- daily_schedule: Optional[DailySchedule] = ...,
- enabled: Optional[bool] = ...,
- hourly_schedule: Optional[HourlySchedule] = ...,
- monthly_schedule: Optional[MonthlySchedule] = ...,
- weekly_schedule: Optional[WeeklySchedule] = ...
+ smb_encryption: Optional[Union[str, ElasticSmbEncryption]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SnapshotPolicyVolumeList(_Model):
- next_link: Optional[str]
- value: list[Volume]
+ class azure.mgmt.netapp.models.ElasticSmbProperties(_Model):
+ smb_encryption: Optional[Union[str, ElasticSmbEncryption]]
@overload
def __init__(
self,
*,
- next_link: Optional[str] = ...,
- value: list[Volume]
+ smb_encryption: Optional[Union[str, ElasticSmbEncryption]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SnapshotProperties(_Model):
- created: Optional[datetime]
- provisioning_state: Optional[str]
- snapshot_id: Optional[str]
-
-
- class azure.mgmt.netapp.models.SnapshotRestoreFiles(_Model):
- destination_path: Optional[str]
- file_paths: list[str]
+ class azure.mgmt.netapp.models.ElasticSnapshot(ProxyResource):
+ id: str
+ name: str
+ properties: Optional[ElasticSnapshotProperties]
+ system_data: SystemData
+ type: str
@overload
def __init__(
self,
*,
- destination_path: Optional[str] = ...,
- file_paths: list[str]
+ properties: Optional[ElasticSnapshotProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SubvolumeInfo(ProxyResource):
+ class azure.mgmt.netapp.models.ElasticSnapshotPolicy(TrackedResource):
+ e_tag: Optional[str]
id: str
+ location: str
name: str
- properties: Optional[SubvolumeProperties]
+ properties: Optional[ElasticSnapshotPolicyProperties]
system_data: SystemData
+ tags: dict[str, str]
type: str
- def __getattr__(self, name: str) -> Any: ...
-
@overload
def __init__(
self,
*,
- properties: Optional[SubvolumeProperties] = ...
+ location: str,
+ properties: Optional[ElasticSnapshotPolicyProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
+
+ class azure.mgmt.netapp.models.ElasticSnapshotPolicyDailySchedule(_Model):
+ hour: Optional[int]
+ minute: Optional[int]
+ snapshots_to_keep: Optional[int]
+
+ @overload
+ def __init__(
self,
- key: str,
- value: Any
+ *,
+ hour: Optional[int] = ...,
+ minute: Optional[int] = ...,
+ snapshots_to_keep: Optional[int] = ...
) -> None: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SubvolumeModel(_Model):
- id: Optional[str]
- name: Optional[str]
- properties: Optional[SubvolumeModelProperties]
- type: Optional[str]
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.ElasticSnapshotPolicyHourlySchedule(_Model):
+ minute: Optional[int]
+ snapshots_to_keep: Optional[int]
@overload
def __init__(
self,
*,
- properties: Optional[SubvolumeModelProperties] = ...
+ minute: Optional[int] = ...,
+ snapshots_to_keep: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
-
- class azure.mgmt.netapp.models.SubvolumeModelProperties(_Model):
- accessed_time_stamp: Optional[datetime]
- bytes_used: Optional[int]
- changed_time_stamp: Optional[datetime]
- creation_time_stamp: Optional[datetime]
- modified_time_stamp: Optional[datetime]
- parent_path: Optional[str]
- path: Optional[str]
- permissions: Optional[str]
- provisioning_state: Optional[str]
- size: Optional[int]
+ class azure.mgmt.netapp.models.ElasticSnapshotPolicyMonthlySchedule(_Model):
+ days_of_month: Optional[list[int]]
+ hour: Optional[int]
+ minute: Optional[int]
+ snapshots_to_keep: Optional[int]
@overload
def __init__(
self,
*,
- accessed_time_stamp: Optional[datetime] = ...,
- bytes_used: Optional[int] = ...,
- changed_time_stamp: Optional[datetime] = ...,
- creation_time_stamp: Optional[datetime] = ...,
- modified_time_stamp: Optional[datetime] = ...,
- parent_path: Optional[str] = ...,
- path: Optional[str] = ...,
- permissions: Optional[str] = ...,
- provisioning_state: Optional[str] = ...,
- size: Optional[int] = ...
+ days_of_month: Optional[list[int]] = ...,
+ hour: Optional[int] = ...,
+ minute: Optional[int] = ...,
+ snapshots_to_keep: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SubvolumePatchParams(_Model):
- path: Optional[str]
- size: Optional[int]
+ class azure.mgmt.netapp.models.ElasticSnapshotPolicyProperties(_Model):
+ daily_schedule: Optional[ElasticSnapshotPolicyDailySchedule]
+ hourly_schedule: Optional[ElasticSnapshotPolicyHourlySchedule]
+ monthly_schedule: Optional[ElasticSnapshotPolicyMonthlySchedule]
+ policy_status: Optional[Union[str, PolicyStatus]]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ weekly_schedule: Optional[ElasticSnapshotPolicyWeeklySchedule]
@overload
def __init__(
self,
*,
- path: Optional[str] = ...,
- size: Optional[int] = ...
+ daily_schedule: Optional[ElasticSnapshotPolicyDailySchedule] = ...,
+ hourly_schedule: Optional[ElasticSnapshotPolicyHourlySchedule] = ...,
+ monthly_schedule: Optional[ElasticSnapshotPolicyMonthlySchedule] = ...,
+ policy_status: Optional[Union[str, PolicyStatus]] = ...,
+ weekly_schedule: Optional[ElasticSnapshotPolicyWeeklySchedule] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SubvolumePatchRequest(_Model):
- properties: Optional[SubvolumePatchParams]
-
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdate(_Model):
+ properties: Optional[ElasticSnapshotPolicyUpdateProperties]
+ tags: Optional[dict[str, str]]
@overload
def __init__(
self,
*,
- properties: Optional[SubvolumePatchParams] = ...
+ properties: Optional[ElasticSnapshotPolicyUpdateProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
-
- class azure.mgmt.netapp.models.SubvolumeProperties(_Model):
- parent_path: Optional[str]
- path: Optional[str]
- provisioning_state: Optional[str]
- size: Optional[int]
+ class azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdateProperties(_Model):
+ daily_schedule: Optional[ElasticSnapshotPolicyDailySchedule]
+ hourly_schedule: Optional[ElasticSnapshotPolicyHourlySchedule]
+ monthly_schedule: Optional[ElasticSnapshotPolicyMonthlySchedule]
+ policy_status: Optional[Union[str, PolicyStatus]]
+ weekly_schedule: Optional[ElasticSnapshotPolicyWeeklySchedule]
@overload
def __init__(
self,
*,
- parent_path: Optional[str] = ...,
- path: Optional[str] = ...,
- size: Optional[int] = ...
+ daily_schedule: Optional[ElasticSnapshotPolicyDailySchedule] = ...,
+ hourly_schedule: Optional[ElasticSnapshotPolicyHourlySchedule] = ...,
+ monthly_schedule: Optional[ElasticSnapshotPolicyMonthlySchedule] = ...,
+ policy_status: Optional[Union[str, PolicyStatus]] = ...,
+ weekly_schedule: Optional[ElasticSnapshotPolicyWeeklySchedule] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SuspectFile(_Model):
- file_timestamp: Optional[datetime]
- suspect_file_name: Optional[str]
-
-
- class azure.mgmt.netapp.models.SvmPeerCommandResponse(_Model):
- properties: Optional[SvmPeerCommandResponseProperties]
+ class azure.mgmt.netapp.models.ElasticSnapshotPolicyWeeklySchedule(_Model):
+ days: Optional[list[Union[str, DayOfWeek]]]
+ hour: Optional[int]
+ minute: Optional[int]
+ snapshots_to_keep: Optional[int]
@overload
def __init__(
self,
*,
- properties: Optional[SvmPeerCommandResponseProperties] = ...
+ days: Optional[list[Union[str, DayOfWeek]]] = ...,
+ hour: Optional[int] = ...,
+ minute: Optional[int] = ...,
+ snapshots_to_keep: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.SvmPeerCommandResponseProperties(_Model):
- svm_peering_command: Optional[str]
+ class azure.mgmt.netapp.models.ElasticSnapshotProperties(_Model):
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
- @overload
- def __init__(
- self,
- *,
- svm_peering_command: Optional[str] = ...
- ) -> None: ...
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ class azure.mgmt.netapp.models.ElasticUnixAccessRule(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ NO_ACCESS = "NoAccess"
+ READ_ONLY = "ReadOnly"
+ READ_WRITE = "ReadWrite"
- class azure.mgmt.netapp.models.SystemData(_Model):
- created_at: Optional[datetime]
- created_by: Optional[str]
- created_by_type: Optional[Union[str, CreatedByType]]
- last_modified_at: Optional[datetime]
- last_modified_by: Optional[str]
- last_modified_by_type: Optional[Union[str, CreatedByType]]
+ class azure.mgmt.netapp.models.ElasticVolume(TrackedResource):
+ e_tag: Optional[str]
+ id: str
+ location: str
+ name: str
+ properties: Optional[ElasticVolumeProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+ zones: Optional[list[str]]
@overload
def __init__(
self,
*,
- created_at: Optional[datetime] = ...,
- created_by: Optional[str] = ...,
- created_by_type: Optional[Union[str, CreatedByType]] = ...,
- last_modified_at: Optional[datetime] = ...,
- last_modified_by: Optional[str] = ...,
- last_modified_by_type: Optional[Union[str, CreatedByType]] = ...
+ location: str,
+ properties: Optional[ElasticVolumeProperties] = ...,
+ tags: Optional[dict[str, str]] = ...,
+ zones: Optional[list[str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.TrackedResource(Resource):
- id: str
- location: str
- name: str
- system_data: SystemData
- tags: Optional[dict[str, str]]
- type: str
+ class azure.mgmt.netapp.models.ElasticVolumeBackupProperties(_Model):
+ elastic_backup_policy_resource_id: Optional[str]
+ elastic_backup_vault_resource_id: Optional[str]
+ policy_enforcement: Optional[Union[str, ElasticVolumePolicyEnforcement]]
@overload
def __init__(
self,
*,
- location: str,
- tags: Optional[dict[str, str]] = ...
+ elastic_backup_policy_resource_id: Optional[str] = ...,
+ elastic_backup_vault_resource_id: Optional[str] = ...,
+ policy_enforcement: Optional[Union[str, ElasticVolumePolicyEnforcement]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.UpdateNetworkSiblingSetRequest(_Model):
- network_features: Union[str, NetworkFeatures]
- network_sibling_set_id: str
- network_sibling_set_state_id: str
- subnet_id: str
+ class azure.mgmt.netapp.models.ElasticVolumeDataProtectionPatchProperties(_Model):
+ backup: Optional[ElasticVolumeBackupProperties]
+ snapshot: Optional[ElasticVolumeSnapshotProperties]
@overload
def __init__(
self,
*,
- network_features: Union[str, NetworkFeatures],
- network_sibling_set_id: str,
- network_sibling_set_state_id: str,
- subnet_id: str
+ backup: Optional[ElasticVolumeBackupProperties] = ...,
+ snapshot: Optional[ElasticVolumeSnapshotProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.UsageName(_Model):
- localized_value: Optional[str]
- value: Optional[str]
+ class azure.mgmt.netapp.models.ElasticVolumeDataProtectionProperties(_Model):
+ backup: Optional[ElasticVolumeBackupProperties]
+ snapshot: Optional[ElasticVolumeSnapshotProperties]
@overload
def __init__(
self,
*,
- localized_value: Optional[str] = ...,
- value: Optional[str] = ...
+ backup: Optional[ElasticVolumeBackupProperties] = ...,
+ snapshot: Optional[ElasticVolumeSnapshotProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.UsageProperties(_Model):
- current_value: Optional[int]
- limit: Optional[int]
- unit: Optional[str]
-
+ class azure.mgmt.netapp.models.ElasticVolumePolicyEnforcement(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ENFORCED = "Enforced"
+ NOT_ENFORCED = "NotEnforced"
- class azure.mgmt.netapp.models.UsageResult(_Model):
- id: Optional[str]
- name: Optional[UsageName]
- properties: Optional[UsageProperties]
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.ElasticVolumeProperties(_Model):
+ availability_status: Optional[Union[str, ElasticResourceAvailabilityStatus]]
+ backup_resource_id: Optional[str]
+ data_protection: Optional[ElasticVolumeDataProtectionProperties]
+ export_policy: Optional[ElasticExportPolicy]
+ file_path: str
+ mount_targets: Optional[list[ElasticMountTargetProperties]]
+ protocol_types: list[Union[str, ElasticProtocolType]]
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ restoration_state: Optional[Union[str, ElasticVolumeRestorationState]]
+ size: int
+ smb_properties: Optional[ElasticSmbProperties]
+ snapshot_directory_visibility: Optional[Union[str, SnapshotDirectoryVisibility]]
+ snapshot_resource_id: Optional[str]
@overload
def __init__(
self,
*,
- properties: Optional[UsageProperties] = ...
+ backup_resource_id: Optional[str] = ...,
+ data_protection: Optional[ElasticVolumeDataProtectionProperties] = ...,
+ export_policy: Optional[ElasticExportPolicy] = ...,
+ file_path: str,
+ protocol_types: list[Union[str, ElasticProtocolType]],
+ size: int,
+ smb_properties: Optional[ElasticSmbProperties] = ...,
+ snapshot_directory_visibility: Optional[Union[str, SnapshotDirectoryVisibility]] = ...,
+ snapshot_resource_id: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
-
-
- class azure.mgmt.netapp.models.UserAssignedIdentity(_Model):
- client_id: Optional[str]
- principal_id: Optional[str]
+ class azure.mgmt.netapp.models.ElasticVolumeRestorationState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ FAILED = "Failed"
+ RESTORED = "Restored"
+ RESTORING = "Restoring"
- class azure.mgmt.netapp.models.Volume(TrackedResource):
- etag: Optional[str]
- id: str
- location: str
- name: str
- properties: VolumeProperties
- system_data: SystemData
- tags: dict[str, str]
- type: str
- zones: Optional[list[str]]
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.ElasticVolumeRevert(_Model):
+ snapshot_resource_id: Optional[str]
@overload
def __init__(
self,
*,
- location: str,
- properties: VolumeProperties,
- tags: Optional[dict[str, str]] = ...,
- zones: Optional[list[str]] = ...
+ snapshot_resource_id: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
-
- class azure.mgmt.netapp.models.VolumeBackupProperties(_Model):
- backup_policy_id: Optional[str]
- backup_vault_id: Optional[str]
- policy_enforced: Optional[bool]
+ class azure.mgmt.netapp.models.ElasticVolumeSnapshotProperties(_Model):
+ snapshot_policy_resource_id: Optional[str]
@overload
def __init__(
self,
*,
- backup_policy_id: Optional[str] = ...,
- backup_vault_id: Optional[str] = ...,
- policy_enforced: Optional[bool] = ...
+ snapshot_policy_resource_id: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeBackupRelationshipStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- FAILED = "Failed"
- IDLE = "Idle"
- TRANSFERRING = "Transferring"
- UNKNOWN = "Unknown"
-
-
- class azure.mgmt.netapp.models.VolumeBackups(_Model):
- backups_count: Optional[int]
- policy_enabled: Optional[bool]
- volume_name: Optional[str]
- volume_resource_id: Optional[str]
+ class azure.mgmt.netapp.models.ElasticVolumeUpdate(_Model):
+ properties: Optional[ElasticVolumeUpdateProperties]
+ tags: Optional[dict[str, str]]
@overload
def __init__(
self,
*,
- backups_count: Optional[int] = ...,
- policy_enabled: Optional[bool] = ...,
- volume_name: Optional[str] = ...,
- volume_resource_id: Optional[str] = ...
+ properties: Optional[ElasticVolumeUpdateProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeGroup(_Model):
- id: Optional[str]
- location: Optional[str]
- name: Optional[str]
- properties: Optional[VolumeGroupListProperties]
- type: Optional[str]
-
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.ElasticVolumeUpdateProperties(_Model):
+ data_protection: Optional[ElasticVolumeDataProtectionPatchProperties]
+ export_policy: Optional[ElasticExportPolicy]
+ size: Optional[int]
+ smb_properties: Optional[ElasticSmbPatchProperties]
+ snapshot_directory_visibility: Optional[Union[str, SnapshotDirectoryVisibility]]
@overload
def __init__(
self,
*,
- location: Optional[str] = ...,
- properties: Optional[VolumeGroupListProperties] = ...
+ data_protection: Optional[ElasticVolumeDataProtectionPatchProperties] = ...,
+ export_policy: Optional[ElasticExportPolicy] = ...,
+ size: Optional[int] = ...,
+ smb_properties: Optional[ElasticSmbPatchProperties] = ...,
+ snapshot_directory_visibility: Optional[Union[str, SnapshotDirectoryVisibility]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+ class azure.mgmt.netapp.models.EnableSubvolumes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- class azure.mgmt.netapp.models.VolumeGroupDetails(ProxyResource):
- id: str
- location: Optional[str]
- name: str
- properties: Optional[VolumeGroupProperties]
- system_data: SystemData
- type: str
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.EnableWriteBackState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.EncryptionIdentity(_Model):
+ federated_client_id: Optional[str]
+ principal_id: Optional[str]
+ user_assigned_identity: Optional[str]
@overload
def __init__(
self,
*,
- location: Optional[str] = ...,
- properties: Optional[VolumeGroupProperties] = ...
+ federated_client_id: Optional[str] = ...,
+ user_assigned_identity: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+
+ class azure.mgmt.netapp.models.EncryptionKeySource(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ MICROSOFT_KEY_VAULT = "Microsoft.KeyVault"
+ MICROSOFT_NET_APP = "Microsoft.NetApp"
- class azure.mgmt.netapp.models.VolumeGroupListProperties(_Model):
- group_meta_data: Optional[VolumeGroupMetaData]
- provisioning_state: Optional[str]
+ class azure.mgmt.netapp.models.EncryptionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.EncryptionTransitionRequest(_Model):
+ private_endpoint_id: str
+ virtual_network_id: str
@overload
def __init__(
self,
*,
- group_meta_data: Optional[VolumeGroupMetaData] = ...
+ private_endpoint_id: str,
+ virtual_network_id: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeGroupMetaData(_Model):
- application_identifier: Optional[str]
- application_type: Optional[Union[str, ApplicationType]]
- global_placement_rules: Optional[list[PlacementKeyValuePairs]]
- group_description: Optional[str]
- volumes_count: Optional[int]
+ class azure.mgmt.netapp.models.EncryptionType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DOUBLE = "Double"
+ SINGLE = "Single"
+
+
+ class azure.mgmt.netapp.models.EndpointType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DST = "dst"
+ SRC = "src"
+
+
+ class azure.mgmt.netapp.models.EntraIdAkvConfig(_Model):
+ azure_key_vault_uri: str
+ certificate_name: str
+ user_assigned_identity: Optional[str]
@overload
def __init__(
self,
*,
- application_identifier: Optional[str] = ...,
- application_type: Optional[Union[str, ApplicationType]] = ...,
- global_placement_rules: Optional[list[PlacementKeyValuePairs]] = ...,
- group_description: Optional[str] = ...
+ azure_key_vault_uri: str,
+ certificate_name: str,
+ user_assigned_identity: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeGroupProperties(_Model):
- group_meta_data: Optional[VolumeGroupMetaData]
- provisioning_state: Optional[str]
- volumes: Optional[list[VolumeGroupVolumeProperties]]
+ class azure.mgmt.netapp.models.EntraIdAkvConfigPatch(_Model):
+ azure_key_vault_uri: Optional[str]
+ certificate_name: Optional[str]
+ user_assigned_identity: Optional[str]
@overload
def __init__(
self,
*,
- group_meta_data: Optional[VolumeGroupMetaData] = ...,
- volumes: Optional[list[VolumeGroupVolumeProperties]] = ...
+ azure_key_vault_uri: Optional[str] = ...,
+ certificate_name: Optional[str] = ...,
+ user_assigned_identity: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeGroupVolumeProperties(_Model):
- id: Optional[str]
- name: Optional[str]
- properties: VolumeProperties
- tags: Optional[dict[str, str]]
- type: Optional[str]
- zones: Optional[list[str]]
-
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.EntraIdConfig(_Model):
+ application_id: str
+ domain: str
+ entra_id_akv_config: Optional[EntraIdAkvConfig]
+ server_name_prefix: str
@overload
def __init__(
self,
*,
- name: Optional[str] = ...,
- properties: VolumeProperties,
- tags: Optional[dict[str, str]] = ...,
- zones: Optional[list[str]] = ...
+ application_id: str,
+ domain: str,
+ entra_id_akv_config: Optional[EntraIdAkvConfig] = ...,
+ server_name_prefix: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
+
+ class azure.mgmt.netapp.models.EntraIdConfigPatch(_Model):
+ application_id: Optional[str]
+ domain: Optional[str]
+ entra_id_akv_config: Optional[EntraIdAkvConfigPatch]
+ server_name_prefix: Optional[str]
+
+ @overload
+ def __init__(
self,
- key: str,
- value: Any
+ *,
+ application_id: Optional[str] = ...,
+ domain: Optional[str] = ...,
+ entra_id_akv_config: Optional[EntraIdAkvConfigPatch] = ...,
+ server_name_prefix: Optional[str] = ...
) -> None: ...
-
- class azure.mgmt.netapp.models.VolumeLanguage(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- AR = "ar"
- AR_UTF8 = "ar.utf-8"
- C = "c"
- CS = "cs"
- CS_UTF8 = "cs.utf-8"
- C_UTF8 = "c.utf-8"
- DA = "da"
- DA_UTF8 = "da.utf-8"
- DE = "de"
- DE_UTF8 = "de.utf-8"
- EN = "en"
- EN_US = "en-us"
- EN_US_UTF8 = "en-us.utf-8"
- EN_UTF8 = "en.utf-8"
- ES = "es"
- ES_UTF8 = "es.utf-8"
- FI = "fi"
- FI_UTF8 = "fi.utf-8"
- FR = "fr"
- FR_UTF8 = "fr.utf-8"
- HE = "he"
- HE_UTF8 = "he.utf-8"
- HR = "hr"
- HR_UTF8 = "hr.utf-8"
- HU = "hu"
- HU_UTF8 = "hu.utf-8"
- IT = "it"
- IT_UTF8 = "it.utf-8"
- JA = "ja"
- JA_JP932 = "ja-jp.932"
- JA_JP932_UTF8 = "ja-jp.932.utf-8"
- JA_JP_PCK = "ja-jp.pck"
- JA_JP_PCK_UTF8 = "ja-jp.pck.utf-8"
- JA_JP_PCK_V2 = "ja-jp.pck-v2"
- JA_JP_PCK_V2_UTF8 = "ja-jp.pck-v2.utf-8"
- JA_UTF8 = "ja.utf-8"
- JA_V1 = "ja-v1"
- JA_V1_UTF8 = "ja-v1.utf-8"
- KO = "ko"
- KO_UTF8 = "ko.utf-8"
- NL = "nl"
- NL_UTF8 = "nl.utf-8"
- NO = "no"
- NO_UTF8 = "no.utf-8"
- PL = "pl"
- PL_UTF8 = "pl.utf-8"
- PT = "pt"
- PT_UTF8 = "pt.utf-8"
- RO = "ro"
- RO_UTF8 = "ro.utf-8"
- RU = "ru"
- RU_UTF8 = "ru.utf-8"
- SK = "sk"
- SK_UTF8 = "sk.utf-8"
- SL = "sl"
- SL_UTF8 = "sl.utf-8"
- SV = "sv"
- SV_UTF8 = "sv.utf-8"
- TR = "tr"
- TR_UTF8 = "tr.utf-8"
- UTF8_MB4 = "utf8mb4"
- ZH = "zh"
- ZH_GBK = "zh.gbk"
- ZH_GBK_UTF8 = "zh.gbk.utf-8"
- ZH_TW = "zh-tw"
- ZH_TW_BIG5 = "zh-tw.big5"
- ZH_TW_BIG5_UTF8 = "zh-tw.big5.utf-8"
- ZH_TW_UTF8 = "zh-tw.utf-8"
- ZH_UTF8 = "zh.utf-8"
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumePatch(_Model):
- id: Optional[str]
- location: Optional[str]
- name: Optional[str]
- properties: Optional[VolumePatchProperties]
- tags: Optional[dict[str, str]]
+ class azure.mgmt.netapp.models.ErrorAdditionalInfo(_Model):
+ info: Optional[Any]
type: Optional[str]
- def __getattr__(self, name: str) -> Any: ...
+
+ class azure.mgmt.netapp.models.ErrorDetail(_Model):
+ additional_info: Optional[list[ErrorAdditionalInfo]]
+ code: Optional[str]
+ details: Optional[list[ErrorDetail]]
+ message: Optional[str]
+ target: Optional[str]
+
+
+ class azure.mgmt.netapp.models.ErrorResponse(_Model):
+ error: Optional[ErrorDetail]
@overload
def __init__(
self,
*,
- location: Optional[str] = ...,
- properties: Optional[VolumePatchProperties] = ...,
- tags: Optional[dict[str, str]] = ...
+ error: Optional[ErrorDetail] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+
+ class azure.mgmt.netapp.models.Exclude(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DELETED = "Deleted"
+ NONE = "None"
- class azure.mgmt.netapp.models.VolumePatchProperties(_Model):
- cool_access: Optional[bool]
- cool_access_retrieval_policy: Optional[Union[str, CoolAccessRetrievalPolicy]]
- cool_access_tiering_policy: Optional[Union[str, CoolAccessTieringPolicy]]
- coolness_period: Optional[int]
- data_protection: Optional[VolumePatchPropertiesDataProtection]
- default_group_quota_in_ki_bs: Optional[int]
- default_user_quota_in_ki_bs: Optional[int]
- export_policy: Optional[VolumePatchPropertiesExportPolicy]
- is_default_quota_enabled: Optional[bool]
- protocol_types: Optional[list[str]]
- service_level: Optional[Union[str, ServiceLevel]]
- smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]]
- smb_non_browsable: Optional[Union[str, SmbNonBrowsable]]
- snapshot_directory_visible: Optional[bool]
- throughput_mibps: Optional[float]
- unix_permissions: Optional[str]
- usage_threshold: Optional[int]
+ class azure.mgmt.netapp.models.ExportPolicyRule(_Model):
+ allowed_clients: Optional[str]
+ chown_mode: Optional[Union[str, ChownMode]]
+ cifs: Optional[bool]
+ has_root_access: Optional[bool]
+ kerberos5_i_read_only: Optional[bool]
+ kerberos5_i_read_write: Optional[bool]
+ kerberos5_p_read_only: Optional[bool]
+ kerberos5_p_read_write: Optional[bool]
+ kerberos5_read_only: Optional[bool]
+ kerberos5_read_write: Optional[bool]
+ nfsv3: Optional[bool]
+ nfsv41: Optional[bool]
+ rule_index: Optional[int]
+ unix_read_only: Optional[bool]
+ unix_read_write: Optional[bool]
@overload
def __init__(
self,
*,
- cool_access: Optional[bool] = ...,
- cool_access_retrieval_policy: Optional[Union[str, CoolAccessRetrievalPolicy]] = ...,
- cool_access_tiering_policy: Optional[Union[str, CoolAccessTieringPolicy]] = ...,
- coolness_period: Optional[int] = ...,
- data_protection: Optional[VolumePatchPropertiesDataProtection] = ...,
- default_group_quota_in_ki_bs: Optional[int] = ...,
- default_user_quota_in_ki_bs: Optional[int] = ...,
- export_policy: Optional[VolumePatchPropertiesExportPolicy] = ...,
- is_default_quota_enabled: Optional[bool] = ...,
- protocol_types: Optional[list[str]] = ...,
- service_level: Optional[Union[str, ServiceLevel]] = ...,
- smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]] = ...,
- smb_non_browsable: Optional[Union[str, SmbNonBrowsable]] = ...,
- snapshot_directory_visible: Optional[bool] = ...,
- throughput_mibps: Optional[float] = ...,
- unix_permissions: Optional[str] = ...,
- usage_threshold: Optional[int] = ...
+ allowed_clients: Optional[str] = ...,
+ chown_mode: Optional[Union[str, ChownMode]] = ...,
+ cifs: Optional[bool] = ...,
+ has_root_access: Optional[bool] = ...,
+ kerberos5_i_read_only: Optional[bool] = ...,
+ kerberos5_i_read_write: Optional[bool] = ...,
+ kerberos5_p_read_only: Optional[bool] = ...,
+ kerberos5_p_read_write: Optional[bool] = ...,
+ kerberos5_read_only: Optional[bool] = ...,
+ kerberos5_read_write: Optional[bool] = ...,
+ nfsv3: Optional[bool] = ...,
+ nfsv41: Optional[bool] = ...,
+ rule_index: Optional[int] = ...,
+ unix_read_only: Optional[bool] = ...,
+ unix_read_write: Optional[bool] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumePatchPropertiesDataProtection(_Model):
- backup: Optional[VolumeBackupProperties]
- ransomware_protection: Optional[RansomwareProtectionPatchSettings]
- snapshot: Optional[VolumeSnapshotProperties]
+ class azure.mgmt.netapp.models.ExternalReplicationSetupStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CLUSTER_PEER_PENDING = "ClusterPeerPending"
+ CLUSTER_PEER_REQUIRED = "ClusterPeerRequired"
+ NO_ACTION_REQUIRED = "NoActionRequired"
+ REPLICATION_CREATE_REQUIRED = "ReplicationCreateRequired"
+ V_SERVER_PEER_REQUIRED = "VServerPeerRequired"
+
+
+ class azure.mgmt.netapp.models.FileAccessLogs(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.FilePathAvailabilityRequest(_Model):
+ availability_zone: Optional[str]
+ name: str
+ subnet_id: str
@overload
def __init__(
self,
*,
- backup: Optional[VolumeBackupProperties] = ...,
- ransomware_protection: Optional[RansomwareProtectionPatchSettings] = ...,
- snapshot: Optional[VolumeSnapshotProperties] = ...
+ availability_zone: Optional[str] = ...,
+ name: str,
+ subnet_id: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumePatchPropertiesExportPolicy(_Model):
- rules: Optional[list[ExportPolicyRule]]
+ class azure.mgmt.netapp.models.FileSystemUser(_Model):
+ cifs_user: Optional[CifsUser]
+ nfs_user: Optional[NfsUser]
@overload
def __init__(
self,
*,
- rules: Optional[list[ExportPolicyRule]] = ...
+ cifs_user: Optional[CifsUser] = ...,
+ nfs_user: Optional[NfsUser] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeProperties(_Model):
- accept_grow_capacity_pool_for_short_term_clone_split: Optional[Union[str, AcceptGrowCapacityPoolForShortTermCloneSplit]]
- actual_throughput_mibps: Optional[float]
- avs_data_store: Optional[Union[str, AvsDataStore]]
- backup_id: Optional[str]
- baremetal_tenant_id: Optional[str]
- breakthrough_mode: Optional[Union[str, BreakthroughMode]]
- capacity_pool_resource_id: Optional[str]
- clone_progress: Optional[int]
- cool_access: Optional[bool]
- cool_access_retrieval_policy: Optional[Union[str, CoolAccessRetrievalPolicy]]
- cool_access_tiering_policy: Optional[Union[str, CoolAccessTieringPolicy]]
- coolness_period: Optional[int]
- creation_token: str
- data_protection: Optional[VolumePropertiesDataProtection]
- data_store_resource_id: Optional[list[str]]
- default_group_quota_in_ki_bs: Optional[int]
- default_user_quota_in_ki_bs: Optional[int]
- delete_base_snapshot: Optional[bool]
- effective_network_features: Optional[Union[str, NetworkFeatures]]
- enable_subvolumes: Optional[Union[str, EnableSubvolumes]]
- encrypted: Optional[bool]
- encryption_key_source: Optional[Union[str, EncryptionKeySource]]
- export_policy: Optional[VolumePropertiesExportPolicy]
- file_access_logs: Optional[Union[str, FileAccessLogs]]
- file_system_id: Optional[str]
- inherited_size_in_bytes: Optional[int]
- is_default_quota_enabled: Optional[bool]
- is_large_volume: Optional[bool]
- is_restoring: Optional[bool]
- kerberos_enabled: Optional[bool]
- key_vault_private_endpoint_resource_id: Optional[str]
- ldap_enabled: Optional[bool]
- maximum_number_of_files: Optional[int]
- mount_targets: Optional[list[MountTargetProperties]]
- network_features: Optional[Union[str, NetworkFeatures]]
- network_sibling_set_id: Optional[str]
- originating_resource_id: Optional[str]
- placement_rules: Optional[list[PlacementKeyValuePairs]]
- protocol_types: Optional[list[str]]
- provisioned_availability_zone: Optional[str]
- provisioning_state: Optional[str]
- proximity_placement_group: Optional[str]
- security_style: Optional[Union[str, SecurityStyle]]
- service_level: Optional[Union[str, ServiceLevel]]
- smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]]
- smb_continuously_available: Optional[bool]
- smb_encryption: Optional[bool]
- smb_non_browsable: Optional[Union[str, SmbNonBrowsable]]
- snapshot_directory_visible: Optional[bool]
- snapshot_id: Optional[str]
- storage_to_network_proximity: Optional[Union[str, VolumeStorageToNetworkProximity]]
- subnet_id: str
- t2_network: Optional[str]
- throughput_mibps: Optional[float]
- unix_permissions: Optional[str]
- usage_threshold: int
- volume_group_name: Optional[str]
- volume_spec_name: Optional[str]
- volume_type: Optional[str]
+ class azure.mgmt.netapp.models.GetGroupIdListForLDAPUserRequest(_Model):
+ username: str
@overload
def __init__(
self,
*,
- accept_grow_capacity_pool_for_short_term_clone_split: Optional[Union[str, AcceptGrowCapacityPoolForShortTermCloneSplit]] = ...,
- avs_data_store: Optional[Union[str, AvsDataStore]] = ...,
- backup_id: Optional[str] = ...,
- breakthrough_mode: Optional[Union[str, BreakthroughMode]] = ...,
- capacity_pool_resource_id: Optional[str] = ...,
- cool_access: Optional[bool] = ...,
- cool_access_retrieval_policy: Optional[Union[str, CoolAccessRetrievalPolicy]] = ...,
- cool_access_tiering_policy: Optional[Union[str, CoolAccessTieringPolicy]] = ...,
- coolness_period: Optional[int] = ...,
- creation_token: str,
- data_protection: Optional[VolumePropertiesDataProtection] = ...,
- default_group_quota_in_ki_bs: Optional[int] = ...,
- default_user_quota_in_ki_bs: Optional[int] = ...,
- delete_base_snapshot: Optional[bool] = ...,
- enable_subvolumes: Optional[Union[str, EnableSubvolumes]] = ...,
- encryption_key_source: Optional[Union[str, EncryptionKeySource]] = ...,
- export_policy: Optional[VolumePropertiesExportPolicy] = ...,
- is_default_quota_enabled: Optional[bool] = ...,
- is_large_volume: Optional[bool] = ...,
- kerberos_enabled: Optional[bool] = ...,
- key_vault_private_endpoint_resource_id: Optional[str] = ...,
- ldap_enabled: Optional[bool] = ...,
- network_features: Optional[Union[str, NetworkFeatures]] = ...,
- placement_rules: Optional[list[PlacementKeyValuePairs]] = ...,
- protocol_types: Optional[list[str]] = ...,
- proximity_placement_group: Optional[str] = ...,
- security_style: Optional[Union[str, SecurityStyle]] = ...,
- service_level: Optional[Union[str, ServiceLevel]] = ...,
- smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]] = ...,
- smb_continuously_available: Optional[bool] = ...,
- smb_encryption: Optional[bool] = ...,
- smb_non_browsable: Optional[Union[str, SmbNonBrowsable]] = ...,
- snapshot_directory_visible: Optional[bool] = ...,
- snapshot_id: Optional[str] = ...,
- subnet_id: str,
- throughput_mibps: Optional[float] = ...,
- unix_permissions: Optional[str] = ...,
- usage_threshold: int,
- volume_spec_name: Optional[str] = ...,
- volume_type: Optional[str] = ...
+ username: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumePropertiesDataProtection(_Model):
- backup: Optional[VolumeBackupProperties]
- ransomware_protection: Optional[RansomwareProtectionSettings]
- replication: Optional[ReplicationObject]
- snapshot: Optional[VolumeSnapshotProperties]
- volume_relocation: Optional[VolumeRelocationProperties]
+ class azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse(_Model):
+ group_ids_for_ldap_user: Optional[list[str]]
@overload
def __init__(
self,
*,
- backup: Optional[VolumeBackupProperties] = ...,
- ransomware_protection: Optional[RansomwareProtectionSettings] = ...,
- replication: Optional[ReplicationObject] = ...,
- snapshot: Optional[VolumeSnapshotProperties] = ...,
- volume_relocation: Optional[VolumeRelocationProperties] = ...
+ group_ids_for_ldap_user: Optional[list[str]] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumePropertiesExportPolicy(_Model):
- rules: Optional[list[ExportPolicyRule]]
+ class azure.mgmt.netapp.models.GetKeyVaultStatusResponse(_Model):
+ properties: Optional[GetKeyVaultStatusResponseProperties]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
def __init__(
self,
*,
- rules: Optional[list[ExportPolicyRule]] = ...
+ properties: Optional[GetKeyVaultStatusResponseProperties] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+ def __setattr__(
+ self,
+ key: str,
+ value: Any
+ ) -> None: ...
- class azure.mgmt.netapp.models.VolumeQuotaRule(TrackedResource):
- id: str
- location: str
- name: str
- properties: Optional[VolumeQuotaRulesProperties]
- system_data: SystemData
- tags: dict[str, str]
- type: str
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.GetKeyVaultStatusResponseProperties(_Model):
+ key_name: Optional[str]
+ key_vault_private_endpoints: Optional[list[KeyVaultPrivateEndpoint]]
+ key_vault_resource_id: Optional[str]
+ key_vault_uri: Optional[str]
@overload
def __init__(
self,
*,
- location: str,
- properties: Optional[VolumeQuotaRulesProperties] = ...,
- tags: Optional[dict[str, str]] = ...
+ key_name: Optional[str] = ...,
+ key_vault_private_endpoints: Optional[list[KeyVaultPrivateEndpoint]] = ...,
+ key_vault_resource_id: Optional[str] = ...,
+ key_vault_uri: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+ class azure.mgmt.netapp.models.GlobalFileLockingState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- class azure.mgmt.netapp.models.VolumeQuotaRulePatch(_Model):
- properties: Optional[VolumeQuotaRulesProperties]
- tags: Optional[dict[str, str]]
- def __getattr__(self, name: str) -> Any: ...
+ class azure.mgmt.netapp.models.HourlySchedule(_Model):
+ minute: Optional[int]
+ snapshots_to_keep: Optional[int]
+ used_bytes: Optional[int]
@overload
def __init__(
self,
*,
- properties: Optional[VolumeQuotaRulesProperties] = ...,
- tags: Optional[dict[str, str]] = ...
+ minute: Optional[int] = ...,
+ snapshots_to_keep: Optional[int] = ...,
+ used_bytes: Optional[int] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- def __setattr__(
- self,
- key: str,
- value: Any
- ) -> None: ...
+ class azure.mgmt.netapp.models.InAvailabilityReasonType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ALREADY_EXISTS = "AlreadyExists"
+ INVALID = "Invalid"
- class azure.mgmt.netapp.models.VolumeQuotaRulesProperties(_Model):
- provisioning_state: Optional[Union[str, NetAppProvisioningState]]
- quota_size_in_ki_bs: Optional[int]
- quota_target: Optional[str]
- quota_type: Optional[Union[str, QuotaType]]
+
+ class azure.mgmt.netapp.models.KerberosState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.KeySource(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ MICROSOFT_KEY_VAULT = "Microsoft.KeyVault"
+ MICROSOFT_NET_APP = "Microsoft.NetApp"
+
+
+ class azure.mgmt.netapp.models.KeyVaultPrivateEndpoint(_Model):
+ private_endpoint_id: Optional[str]
+ virtual_network_id: Optional[str]
@overload
def __init__(
self,
*,
- quota_size_in_ki_bs: Optional[int] = ...,
- quota_target: Optional[str] = ...,
- quota_type: Optional[Union[str, QuotaType]] = ...
+ private_endpoint_id: Optional[str] = ...,
+ virtual_network_id: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeRelocationProperties(_Model):
- ready_to_be_finalized: Optional[bool]
- relocation_requested: Optional[bool]
+ class azure.mgmt.netapp.models.KeyVaultProperties(_Model):
+ key_name: str
+ key_vault_id: Optional[str]
+ key_vault_resource_id: Optional[str]
+ key_vault_uri: str
+ status: Optional[Union[str, KeyVaultStatus]]
@overload
def __init__(
self,
*,
- relocation_requested: Optional[bool] = ...
+ key_name: str,
+ key_vault_resource_id: Optional[str] = ...,
+ key_vault_uri: str
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeReplicationRelationshipStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- IDLE = "Idle"
- TRANSFERRING = "Transferring"
+ class azure.mgmt.netapp.models.KeyVaultStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CREATED = "Created"
+ DELETED = "Deleted"
+ ERROR = "Error"
+ IN_USE = "InUse"
+ UPDATING = "Updating"
- class azure.mgmt.netapp.models.VolumeRestoreRelationshipStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- FAILED = "Failed"
- IDLE = "Idle"
- TRANSFERRING = "Transferring"
- UNKNOWN = "Unknown"
+ class azure.mgmt.netapp.models.LargeVolumeType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ EXTRA_LARGE_VOLUME7_DOT2_PI_B = "PremExtraLargeVolume7Dot2PiB"
+ LARGE_VOLUME = "LargeVolume"
- class azure.mgmt.netapp.models.VolumeRevert(_Model):
- snapshot_id: Optional[str]
+ class azure.mgmt.netapp.models.LdapConfiguration(_Model):
+ bind_authentication_level: Optional[Union[str, BindAuthenticationLevel]]
+ bind_dn: Optional[str]
+ bind_password_akv_config: Optional[BindPasswordAkvConfig]
+ certificate_cn_host: Optional[str]
+ dns_servers: Optional[list[str]]
+ domain: Optional[str]
+ group_dn: Optional[str]
+ ldap_over_tls: Optional[bool]
+ ldap_port: Optional[int]
+ ldap_servers: Optional[list[str]]
+ net_group_dn: Optional[str]
+ server_ca_certificate: Optional[str]
+ user_dn: Optional[str]
@overload
def __init__(
self,
*,
- snapshot_id: Optional[str] = ...
+ bind_authentication_level: Optional[Union[str, BindAuthenticationLevel]] = ...,
+ bind_dn: Optional[str] = ...,
+ bind_password_akv_config: Optional[BindPasswordAkvConfig] = ...,
+ certificate_cn_host: Optional[str] = ...,
+ dns_servers: Optional[list[str]] = ...,
+ domain: Optional[str] = ...,
+ group_dn: Optional[str] = ...,
+ ldap_over_tls: Optional[bool] = ...,
+ ldap_port: Optional[int] = ...,
+ ldap_servers: Optional[list[str]] = ...,
+ net_group_dn: Optional[str] = ...,
+ server_ca_certificate: Optional[str] = ...,
+ user_dn: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeSnapshotProperties(_Model):
- snapshot_policy_id: Optional[str]
+ class azure.mgmt.netapp.models.LdapConfigurationPatch(_Model):
+ bind_authentication_level: Optional[Union[str, BindAuthenticationLevel]]
+ bind_dn: Optional[str]
+ bind_password_akv_config: Optional[BindPasswordAkvConfigPatch]
+ certificate_cn_host: Optional[str]
+ dns_servers: Optional[list[str]]
+ domain: Optional[str]
+ group_dn: Optional[str]
+ ldap_over_tls: Optional[bool]
+ ldap_port: Optional[int]
+ ldap_servers: Optional[list[str]]
+ net_group_dn: Optional[str]
+ server_ca_certificate: Optional[str]
+ user_dn: Optional[str]
@overload
def __init__(
self,
*,
- snapshot_policy_id: Optional[str] = ...
+ bind_authentication_level: Optional[Union[str, BindAuthenticationLevel]] = ...,
+ bind_dn: Optional[str] = ...,
+ bind_password_akv_config: Optional[BindPasswordAkvConfigPatch] = ...,
+ certificate_cn_host: Optional[str] = ...,
+ dns_servers: Optional[list[str]] = ...,
+ domain: Optional[str] = ...,
+ group_dn: Optional[str] = ...,
+ ldap_over_tls: Optional[bool] = ...,
+ ldap_port: Optional[int] = ...,
+ ldap_servers: Optional[list[str]] = ...,
+ net_group_dn: Optional[str] = ...,
+ server_ca_certificate: Optional[str] = ...,
+ user_dn: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.models.VolumeStorageToNetworkProximity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
- ACROSS_T2 = "AcrossT2"
- DEFAULT = "Default"
- T1 = "T1"
- T2 = "T2"
-
-
- class azure.mgmt.netapp.models.WeeklySchedule(_Model):
- day: Optional[str]
- hour: Optional[int]
- minute: Optional[int]
- snapshots_to_keep: Optional[int]
- used_bytes: Optional[int]
+ class azure.mgmt.netapp.models.LdapSearchScopeOpt(_Model):
+ group_dn: Optional[str]
+ group_membership_filter: Optional[str]
+ user_dn: Optional[str]
@overload
def __init__(
self,
*,
- day: Optional[str] = ...,
- hour: Optional[int] = ...,
- minute: Optional[int] = ...,
- snapshots_to_keep: Optional[int] = ...,
- used_bytes: Optional[int] = ...
+ group_dn: Optional[str] = ...,
+ group_membership_filter: Optional[str] = ...,
+ user_dn: Optional[str] = ...
) -> None: ...
@overload
def __init__(self, mapping: Mapping[str, Any]) -> None: ...
-namespace azure.mgmt.netapp.operations
+ class azure.mgmt.netapp.models.LdapServerType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ACTIVE_DIRECTORY = "ActiveDirectory"
+ OPEN_LDAP = "OpenLDAP"
- class azure.mgmt.netapp.operations.AccountsOperations:
- def __init__(
- self,
- *args,
- **kwargs
- ) -> None: ...
+ class azure.mgmt.netapp.models.LdapState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- @overload
- def begin_change_key_vault(
- self,
- resource_group_name: str,
- account_name: str,
- body: Optional[ChangeKeyVault] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @overload
- def begin_change_key_vault(
- self,
- resource_group_name: str,
- account_name: str,
- body: Optional[ChangeKeyVault] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ class azure.mgmt.netapp.models.ListQuotaReportResponse(_Model):
+ quota_report_records: Optional[list[QuotaReport]]
@overload
- def begin_change_key_vault(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- body: Optional[IO[bytes]] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ quota_report_records: Optional[list[QuotaReport]] = ...
+ ) -> None: ...
@overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- body: NetAppAccount,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetAppAccount]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- body: NetAppAccount,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetAppAccount]: ...
+
+ class azure.mgmt.netapp.models.ListQuotaReportResult(_Model):
+ properties: Optional[ListQuotaReportResponse]
@overload
- def begin_create_or_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetAppAccount]: ...
+ properties: Optional[ListQuotaReportResponse] = ...
+ ) -> None: ...
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def begin_get_change_key_vault_information(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> LROPoller[GetKeyVaultStatusResponse]: ...
- @distributed_trace
- def begin_renew_credentials(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ class azure.mgmt.netapp.models.ListReplicationsRequest(_Model):
+ exclude: Optional[Union[str, Exclude]]
@overload
- def begin_transition_to_cmk(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- body: Optional[EncryptionTransitionRequest] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ exclude: Optional[Union[str, Exclude]] = ...
+ ) -> None: ...
@overload
- def begin_transition_to_cmk(
- self,
- resource_group_name: str,
- account_name: str,
- body: Optional[EncryptionTransitionRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.LogSpecification(_Model):
+ display_name: Optional[str]
+ name: Optional[str]
@overload
- def begin_transition_to_cmk(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- body: Optional[IO[bytes]] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ display_name: Optional[str] = ...,
+ name: Optional[str] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- body: NetAppAccountPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetAppAccount]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.ManagedServiceIdentity(_Model):
+ principal_id: Optional[str]
+ tenant_id: Optional[str]
+ type: Union[str, ManagedServiceIdentityType]
+ user_assigned_identities: Optional[dict[str, UserAssignedIdentity]]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- body: NetAppAccountPatch,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetAppAccount]: ...
+ type: Union[str, ManagedServiceIdentityType],
+ user_assigned_identities: Optional[dict[str, UserAssignedIdentity]] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetAppAccount]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> NetAppAccount: ...
- @distributed_trace
- def list(
- self,
- resource_group_name: str,
- **kwargs: Any
- ) -> ItemPaged[NetAppAccount]: ...
+ class azure.mgmt.netapp.models.ManagedServiceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ NONE = "None"
+ SYSTEM_ASSIGNED = "SystemAssigned"
+ SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned,UserAssigned"
+ USER_ASSIGNED = "UserAssigned"
- @distributed_trace
- def list_by_subscription(self, **kwargs: Any) -> ItemPaged[NetAppAccount]: ...
+ class azure.mgmt.netapp.models.MetricAggregationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ AVERAGE = "Average"
- class azure.mgmt.netapp.operations.BackupPoliciesOperations:
- def __init__(
- self,
- *args,
- **kwargs
- ) -> None: ...
+ class azure.mgmt.netapp.models.MetricSpecification(_Model):
+ aggregation_type: Optional[str]
+ category: Optional[str]
+ dimensions: Optional[list[Dimension]]
+ display_description: Optional[str]
+ display_name: Optional[str]
+ enable_regional_mdm_account: Optional[bool]
+ fill_gap_with_zero: Optional[bool]
+ internal_metric_name: Optional[str]
+ is_internal: Optional[bool]
+ name: Optional[str]
+ resource_id_dimension_name_override: Optional[str]
+ source_mdm_account: Optional[str]
+ source_mdm_namespace: Optional[str]
+ supported_aggregation_types: Optional[list[Union[str, MetricAggregationType]]]
+ supported_time_grain_types: Optional[list[str]]
+ unit: Optional[str]
@overload
- def begin_create(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: BackupPolicy,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupPolicy]: ...
+ aggregation_type: Optional[str] = ...,
+ category: Optional[str] = ...,
+ dimensions: Optional[list[Dimension]] = ...,
+ display_description: Optional[str] = ...,
+ display_name: Optional[str] = ...,
+ enable_regional_mdm_account: Optional[bool] = ...,
+ fill_gap_with_zero: Optional[bool] = ...,
+ internal_metric_name: Optional[str] = ...,
+ is_internal: Optional[bool] = ...,
+ name: Optional[str] = ...,
+ resource_id_dimension_name_override: Optional[str] = ...,
+ source_mdm_account: Optional[str] = ...,
+ source_mdm_namespace: Optional[str] = ...,
+ supported_aggregation_types: Optional[list[Union[str, MetricAggregationType]]] = ...,
+ supported_time_grain_types: Optional[list[str]] = ...,
+ unit: Optional[str] = ...
+ ) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: BackupPolicy,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupPolicy]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupPolicy]: ...
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ class azure.mgmt.netapp.models.MirrorState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ BROKEN = "Broken"
+ MIRRORED = "Mirrored"
+ UNINITIALIZED = "Uninitialized"
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: BackupPolicyPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupPolicy]: ...
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: BackupPolicyPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupPolicy]: ...
+ class azure.mgmt.netapp.models.MonthlySchedule(_Model):
+ days_of_month: Optional[str]
+ hour: Optional[int]
+ minute: Optional[int]
+ snapshots_to_keep: Optional[int]
+ used_bytes: Optional[int]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupPolicy]: ...
-
- @distributed_trace
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- **kwargs: Any
- ) -> BackupPolicy: ...
+ days_of_month: Optional[str] = ...,
+ hour: Optional[int] = ...,
+ minute: Optional[int] = ...,
+ snapshots_to_keep: Optional[int] = ...,
+ used_bytes: Optional[int] = ...
+ ) -> None: ...
- @distributed_trace
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> ItemPaged[BackupPolicy]: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.operations.BackupVaultsOperations:
+ class azure.mgmt.netapp.models.MountTargetProperties(_Model):
+ file_system_id: str
+ ip_address: Optional[str]
+ mount_target_id: Optional[str]
+ smb_server_fqdn: Optional[str]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ file_system_id: str,
+ smb_server_fqdn: Optional[str] = ...
) -> None: ...
@overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- body: BackupVault,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupVault]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- body: BackupVault,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupVault]: ...
- @overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupVault]: ...
+ class azure.mgmt.netapp.models.MultiAdStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- body: BackupVaultPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupVault]: ...
+ class azure.mgmt.netapp.models.NetAppAccount(TrackedResource):
+ etag: Optional[str]
+ id: str
+ identity: Optional[ManagedServiceIdentity]
+ location: str
+ name: str
+ properties: Optional[AccountProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- body: BackupVaultPatch,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupVault]: ...
+ identity: Optional[ManagedServiceIdentity] = ...,
+ location: str,
+ properties: Optional[AccountProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[BackupVault]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def get(
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- **kwargs: Any
- ) -> BackupVault: ...
+ key: str,
+ value: Any
+ ) -> None: ...
- @distributed_trace
- def list_by_net_app_account(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> ItemPaged[BackupVault]: ...
+ class azure.mgmt.netapp.models.NetAppAccountPatch(_Model):
+ identity: Optional[ManagedServiceIdentity]
+ properties: Optional[AccountPropertiesPatch]
+ tags: Optional[dict[str, str]]
- class azure.mgmt.netapp.operations.BackupsOperations:
+ def __getattr__(self, name: str) -> Any: ...
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ identity: Optional[ManagedServiceIdentity] = ...,
+ properties: Optional[AccountPropertiesPatch] = ...,
+ tags: Optional[dict[str, str]] = ...
) -> None: ...
@overload
- def begin_create(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Backup,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Backup]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.NetAppProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ACCEPTED = "Accepted"
+ CREATING = "Creating"
+ DELETING = "Deleting"
+ FAILED = "Failed"
+ MOVING = "Moving"
+ PATCHING = "Patching"
+ SUCCEEDED = "Succeeded"
+ UPDATING = "Updating"
+
+
+ class azure.mgmt.netapp.models.NetworkFeatures(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ BASIC = "Basic"
+ BASIC_STANDARD = "Basic_Standard"
+ STANDARD = "Standard"
+ STANDARD_BASIC = "Standard_Basic"
+
+
+ class azure.mgmt.netapp.models.NetworkSiblingSet(_Model):
+ network_features: Optional[Union[str, NetworkFeatures]]
+ network_sibling_set_id: Optional[str]
+ network_sibling_set_state_id: Optional[str]
+ nic_info_list: Optional[list[NicInfo]]
+ provisioning_state: Optional[Union[str, NetworkSiblingSetProvisioningState]]
+ subnet_id: Optional[str]
@overload
- def begin_create(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Backup,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Backup]: ...
+ network_features: Optional[Union[str, NetworkFeatures]] = ...,
+ network_sibling_set_id: Optional[str] = ...,
+ network_sibling_set_state_id: Optional[str] = ...,
+ nic_info_list: Optional[list[NicInfo]] = ...,
+ subnet_id: Optional[str] = ...
+ ) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Backup]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.NetworkSiblingSetProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CANCELED = "Canceled"
+ FAILED = "Failed"
+ SUCCEEDED = "Succeeded"
+ UPDATING = "Updating"
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+
+ class azure.mgmt.netapp.models.NfsUser(_Model):
+ group_id: Optional[int]
+ user_id: Optional[int]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Optional[BackupPatch] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Backup]: ...
+ group_id: Optional[int] = ...,
+ user_id: Optional[int] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Optional[BackupPatch] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Backup]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.NicInfo(_Model):
+ ip_address: Optional[str]
+ volume_resource_ids: Optional[list[str]]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Optional[IO[bytes]] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Backup]: ...
+ volume_resource_ids: Optional[list[str]] = ...
+ ) -> None: ...
- @distributed_trace
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- **kwargs: Any
- ) -> Backup: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def get_latest_status(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> BackupStatus: ...
- @distributed_trace
- def get_volume_latest_restore_status(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> RestoreStatus: ...
+ class azure.mgmt.netapp.models.OnCertificateConflictAction(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ FAIL = "Fail"
+ UPDATE = "Update"
- @distributed_trace
- def list_by_vault(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- *,
- filter: Optional[str] = ...,
- **kwargs: Any
- ) -> ItemPaged[Backup]: ...
+ class azure.mgmt.netapp.models.Operation(_Model):
+ display: Optional[OperationDisplay]
+ name: Optional[str]
+ origin: Optional[str]
+ properties: Optional[OperationProperties]
- class azure.mgmt.netapp.operations.BackupsUnderAccountOperations:
+ def __getattr__(self, name: str) -> Any: ...
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ display: Optional[OperationDisplay] = ...,
+ name: Optional[str] = ...,
+ origin: Optional[str] = ...,
+ properties: Optional[OperationProperties] = ...
) -> None: ...
@overload
- def begin_migrate_backups(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- body: BackupsMigrationRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.OperationDisplay(_Model):
+ description: Optional[str]
+ operation: Optional[str]
+ provider: Optional[str]
+ resource: Optional[str]
@overload
- def begin_migrate_backups(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- body: BackupsMigrationRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ description: Optional[str] = ...,
+ operation: Optional[str] = ...,
+ provider: Optional[str] = ...,
+ resource: Optional[str] = ...
+ ) -> None: ...
@overload
- def begin_migrate_backups(
- self,
- resource_group_name: str,
- account_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.operations.BackupsUnderBackupVaultOperations:
+ class azure.mgmt.netapp.models.OperationProperties(_Model):
+ service_specification: Optional[ServiceSpecification]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ service_specification: Optional[ServiceSpecification] = ...
) -> None: ...
@overload
- def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: BackupRestoreFiles,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.OriginClusterInformation(_Model):
+ peer_addresses: list[str]
+ peer_cluster_name: str
+ peer_volume_name: str
+ peer_vserver_name: str
@overload
- def begin_restore_files(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: BackupRestoreFiles,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ peer_addresses: list[str],
+ peer_cluster_name: str,
+ peer_volume_name: str,
+ peer_vserver_name: str
+ ) -> None: ...
@overload
- def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.operations.BackupsUnderVolumeOperations:
+ class azure.mgmt.netapp.models.PeerClusterForVolumeMigrationRequest(_Model):
+ peer_ip_addresses: list[str]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ peer_ip_addresses: list[str]
) -> None: ...
@overload
- def begin_migrate_backups(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: BackupsMigrationRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.PeeringPassphrases(_Model):
+ cluster_peering_command: str
+ cluster_peering_passphrase: str
+ critical_warning: Optional[str]
+ vserver_peering_command: str
@overload
- def begin_migrate_backups(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: BackupsMigrationRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ cluster_peering_command: str,
+ cluster_peering_passphrase: str,
+ vserver_peering_command: str
+ ) -> None: ...
@overload
- def begin_migrate_backups(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.operations.BucketsOperations:
+ class azure.mgmt.netapp.models.PlacementKeyValuePairs(_Model):
+ key: str
+ value: str
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ key: str,
+ value: str
) -> None: ...
@overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Bucket,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Bucket]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Bucket,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Bucket]: ...
- @overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Bucket]: ...
+ class azure.mgmt.netapp.models.PolicyStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @overload
- def begin_generate_akv_credentials(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: BucketCredentialsExpiry,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ class azure.mgmt.netapp.models.PoolChangeRequest(_Model):
+ new_pool_resource_id: str
@overload
- def begin_generate_akv_credentials(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: BucketCredentialsExpiry,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ new_pool_resource_id: str
+ ) -> None: ...
@overload
- def begin_generate_akv_credentials(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def begin_refresh_certificate(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+
+ class azure.mgmt.netapp.models.PoolPatchProperties(_Model):
+ cool_access: Optional[bool]
+ custom_throughput_mibps: Optional[int]
+ qos_type: Optional[Union[str, QosType]]
+ size: Optional[int]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: BucketPatch,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Bucket]: ...
+ cool_access: Optional[bool] = ...,
+ custom_throughput_mibps: Optional[int] = ...,
+ qos_type: Optional[Union[str, QosType]] = ...,
+ size: Optional[int] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: BucketPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Bucket]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.PoolProperties(_Model):
+ cool_access: Optional[bool]
+ custom_throughput_mibps: Optional[int]
+ encryption_type: Optional[Union[str, EncryptionType]]
+ pool_id: Optional[str]
+ provisioning_state: Optional[str]
+ qos_type: Optional[Union[str, QosType]]
+ service_level: Union[str, ServiceLevel]
+ size: int
+ total_throughput_mibps: Optional[float]
+ utilized_throughput_mibps: Optional[float]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Bucket]: ...
+ cool_access: Optional[bool] = ...,
+ custom_throughput_mibps: Optional[int] = ...,
+ encryption_type: Optional[Union[str, EncryptionType]] = ...,
+ qos_type: Optional[Union[str, QosType]] = ...,
+ service_level: Union[str, ServiceLevel],
+ size: int
+ ) -> None: ...
@overload
- def generate_credentials(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: BucketCredentialsExpiry,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> BucketGenerateCredentials: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.ProtocolTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ NF_SV3 = "NFSv3"
+ NF_SV4 = "NFSv4"
+ SMB = "SMB"
+
+
+ class azure.mgmt.netapp.models.ProxyResource(Resource):
+ id: str
+ name: str
+ system_data: SystemData
+ type: str
+
+
+ class azure.mgmt.netapp.models.QosType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ AUTO = "Auto"
+ MANUAL = "Manual"
+
+
+ class azure.mgmt.netapp.models.QueryNetworkSiblingSetRequest(_Model):
+ network_sibling_set_id: str
+ subnet_id: str
@overload
- def generate_credentials(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: BucketCredentialsExpiry,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> BucketGenerateCredentials: ...
+ network_sibling_set_id: str,
+ subnet_id: str
+ ) -> None: ...
@overload
- def generate_credentials(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.QuotaAvailabilityRequest(_Model):
+ name: str
+ resource_group: str
+ type: Union[str, CheckQuotaNameResourceTypes]
+
+ @overload
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> BucketGenerateCredentials: ...
+ name: str,
+ resource_group: str,
+ type: Union[str, CheckQuotaNameResourceTypes]
+ ) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- **kwargs: Any
- ) -> Bucket: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> ItemPaged[Bucket]: ...
+ class azure.mgmt.netapp.models.QuotaItem(ProxyResource):
+ id: str
+ name: str
+ properties: Optional[QuotaItemProperties]
+ system_data: SystemData
+ type: str
- class azure.mgmt.netapp.operations.CachesOperations:
+ def __getattr__(self, name: str) -> Any: ...
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ properties: Optional[QuotaItemProperties] = ...
) -> None: ...
@overload
- def begin_create_or_update(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: Cache,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.QuotaItemProperties(_Model):
+ current: Optional[int]
+ default: Optional[int]
+ usage: Optional[int]
+
+
+ class azure.mgmt.netapp.models.QuotaReport(_Model):
+ is_derived_quota: Optional[bool]
+ percentage_used: Optional[float]
+ quota_limit_total_in_ki_bs: Optional[int]
+ quota_limit_used_in_ki_bs: Optional[int]
+ quota_target: Optional[str]
+ quota_type: Optional[Union[str, QuotaType]]
@overload
- def begin_create_or_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: Cache,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ is_derived_quota: Optional[bool] = ...,
+ percentage_used: Optional[float] = ...,
+ quota_limit_total_in_ki_bs: Optional[int] = ...,
+ quota_limit_used_in_ki_bs: Optional[int] = ...,
+ quota_target: Optional[str] = ...,
+ quota_type: Optional[Union[str, QuotaType]] = ...
+ ) -> None: ...
@overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+
+ class azure.mgmt.netapp.models.QuotaReportFilterRequest(_Model):
+ quota_target: Optional[str]
+ quota_type: Optional[Union[str, QuotaType]]
+ usage_threshold_percentage: Optional[int]
@overload
- def begin_pool_change(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: PoolChangeRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ quota_target: Optional[str] = ...,
+ quota_type: Optional[Union[str, QuotaType]] = ...,
+ usage_threshold_percentage: Optional[int] = ...
+ ) -> None: ...
@overload
- def begin_pool_change(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: PoolChangeRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.QuotaType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DEFAULT_GROUP_QUOTA = "DefaultGroupQuota"
+ DEFAULT_USER_QUOTA = "DefaultUserQuota"
+ INDIVIDUAL_GROUP_QUOTA = "IndividualGroupQuota"
+ INDIVIDUAL_USER_QUOTA = "IndividualUserQuota"
+
+
+ class azure.mgmt.netapp.models.RansomwareProtectionPatchSettings(_Model):
+ desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]]
@overload
- def begin_pool_change(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] = ...
+ ) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def begin_reset_smb_password(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.RansomwareProtectionSettings(_Model):
+ actual_ransomware_protection_state: Optional[Union[str, ActualRansomwareProtectionState]]
+ desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: CacheUpdate,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: CacheUpdate,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.RansomwareReport(ProxyResource):
+ id: str
+ name: str
+ properties: Optional[RansomwareReportProperties]
+ system_data: SystemData
+ type: str
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Cache]: ...
+ properties: Optional[RansomwareReportProperties] = ...
+ ) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- **kwargs: Any
- ) -> Cache: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2026-01-01', params_added_on={'2026-01-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'accept']}, api_versions_list=['2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- **kwargs: Any
- ) -> ItemPaged[Cache]: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def list_peering_passphrases(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- **kwargs: Any
- ) -> PeeringPassphrases: ...
+ class azure.mgmt.netapp.models.RansomwareReportProperties(_Model):
+ cleared_count: Optional[int]
+ event_time: Optional[datetime]
+ provisioning_state: Optional[str]
+ reported_count: Optional[int]
+ severity: Optional[Union[str, RansomwareReportSeverity]]
+ state: Optional[Union[str, RansomwareReportState]]
+ suspects: Optional[list[RansomwareSuspects]]
- class azure.mgmt.netapp.operations.NetAppResourceOperations:
+ class azure.mgmt.netapp.models.RansomwareReportSeverity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ HIGH = "High"
+ LOW = "Low"
+ MODERATE = "Moderate"
+ NONE = "None"
- def __init__(
- self,
- *args,
- **kwargs
- ) -> None: ...
- @overload
- def begin_update_network_sibling_set(
- self,
- location: str,
- body: UpdateNetworkSiblingSetRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetworkSiblingSet]: ...
+ class azure.mgmt.netapp.models.RansomwareReportState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ACTIVE = "Active"
+ RESOLVED = "Resolved"
+
+
+ class azure.mgmt.netapp.models.RansomwareSuspectResolution(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ FALSE_POSITIVE = "FalsePositive"
+ POTENTIAL_THREAT = "PotentialThreat"
+
+
+ class azure.mgmt.netapp.models.RansomwareSuspects(_Model):
+ extension: Optional[str]
+ file_count: Optional[int]
+ resolution: Optional[Union[str, RansomwareSuspectResolution]]
+ suspect_files: Optional[list[SuspectFile]]
+
+
+ class azure.mgmt.netapp.models.RansomwareSuspectsClearRequest(_Model):
+ extensions: list[str]
+ resolution: Union[str, RansomwareSuspectResolution]
@overload
- def begin_update_network_sibling_set(
+ def __init__(
self,
- location: str,
- body: UpdateNetworkSiblingSetRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetworkSiblingSet]: ...
+ extensions: list[str],
+ resolution: Union[str, RansomwareSuspectResolution]
+ ) -> None: ...
@overload
- def begin_update_network_sibling_set(
- self,
- location: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[NetworkSiblingSet]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.ReestablishReplicationRequest(_Model):
+ source_volume_id: Optional[str]
@overload
- def check_file_path_availability(
+ def __init__(
self,
- location: str,
- body: FilePathAvailabilityRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ source_volume_id: Optional[str] = ...
+ ) -> None: ...
@overload
- def check_file_path_availability(
- self,
- location: str,
- body: FilePathAvailabilityRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.RegionInfo(_Model):
+ availability_zone_mappings: Optional[list[RegionInfoAvailabilityZoneMappingsItem]]
+ storage_to_network_proximity: Optional[Union[str, RegionStorageToNetworkProximity]]
@overload
- def check_file_path_availability(
+ def __init__(
self,
- location: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ availability_zone_mappings: Optional[list[RegionInfoAvailabilityZoneMappingsItem]] = ...,
+ storage_to_network_proximity: Optional[Union[str, RegionStorageToNetworkProximity]] = ...
+ ) -> None: ...
@overload
- def check_name_availability(
- self,
- location: str,
- body: ResourceNameAvailabilityRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.RegionInfoAvailabilityZoneMappingsItem(_Model):
+ availability_zone: Optional[str]
+ is_available: Optional[bool]
@overload
- def check_name_availability(
+ def __init__(
self,
- location: str,
- body: ResourceNameAvailabilityRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ availability_zone: Optional[str] = ...,
+ is_available: Optional[bool] = ...
+ ) -> None: ...
@overload
- def check_name_availability(
- self,
- location: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.RegionInfoResource(ProxyResource):
+ id: str
+ name: str
+ properties: Optional[RegionInfo]
+ system_data: SystemData
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def check_quota_availability(
+ def __init__(
self,
- location: str,
- body: QuotaAvailabilityRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ properties: Optional[RegionInfo] = ...
+ ) -> None: ...
@overload
- def check_quota_availability(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- location: str,
- body: QuotaAvailabilityRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.RegionStorageToNetworkProximity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ACROSS_T2 = "AcrossT2"
+ DEFAULT = "Default"
+ T1 = "T1"
+ T1_AND_ACROSS_T2 = "T1AndAcrossT2"
+ T1_AND_T2 = "T1AndT2"
+ T1_AND_T2_AND_ACROSS_T2 = "T1AndT2AndAcrossT2"
+ T2 = "T2"
+ T2_AND_ACROSS_T2 = "T2AndAcrossT2"
+
+
+ class azure.mgmt.netapp.models.RelocateVolumeRequest(_Model):
+ creation_token: Optional[str]
@overload
- def check_quota_availability(
+ def __init__(
self,
- location: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> CheckAvailabilityResponse: ...
+ creation_token: Optional[str] = ...
+ ) -> None: ...
@overload
- def query_network_sibling_set(
- self,
- location: str,
- body: QueryNetworkSiblingSetRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> NetworkSiblingSet: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @overload
- def query_network_sibling_set(
- self,
- location: str,
- body: QueryNetworkSiblingSetRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> NetworkSiblingSet: ...
+
+ class azure.mgmt.netapp.models.RemotePath(_Model):
+ external_host_name: str
+ server_name: str
+ volume_name: str
@overload
- def query_network_sibling_set(
+ def __init__(
self,
- location: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> NetworkSiblingSet: ...
+ external_host_name: str,
+ server_name: str,
+ volume_name: str
+ ) -> None: ...
- @distributed_trace
- def query_region_info(
- self,
- location: str,
- **kwargs: Any
- ) -> RegionInfo: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.operations.NetAppResourceQuotaLimitsAccountOperations:
+ class azure.mgmt.netapp.models.Replication(_Model):
+ endpoint_type: Optional[Union[str, EndpointType]]
+ mirror_state: Optional[Union[str, ReplicationMirrorState]]
+ remote_volume_region: Optional[str]
+ remote_volume_resource_id: Optional[str]
+ replication_creation_time: Optional[datetime]
+ replication_deletion_time: Optional[datetime]
+ replication_id: Optional[str]
+ replication_schedule: Optional[Union[str, ReplicationSchedule]]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ endpoint_type: Optional[Union[str, EndpointType]] = ...,
+ remote_volume_region: Optional[str] = ...,
+ remote_volume_resource_id: Optional[str] = ...,
+ replication_schedule: Optional[Union[str, ReplicationSchedule]] = ...
) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-08-01', params_added_on={'2025-08-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'quota_limit_name', 'accept']}, api_versions_list=['2025-08-01', '2025-09-01', '2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- quota_limit_name: str,
- **kwargs: Any
- ) -> QuotaItem: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-08-01', params_added_on={'2025-08-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-08-01', '2025-09-01', '2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> ItemPaged[QuotaItem]: ...
+
+ class azure.mgmt.netapp.models.ReplicationMirrorState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ BROKEN = "Broken"
+ MIRRORED = "Mirrored"
+ UNINITIALIZED = "Uninitialized"
- class azure.mgmt.netapp.operations.NetAppResourceQuotaLimitsOperations:
+ class azure.mgmt.netapp.models.ReplicationObject(_Model):
+ destination_replications: Optional[list[DestinationReplication]]
+ endpoint_type: Optional[Union[str, EndpointType]]
+ external_replication_setup_info: Optional[str]
+ external_replication_setup_status: Optional[Union[str, ExternalReplicationSetupStatus]]
+ mirror_state: Optional[Union[str, MirrorState]]
+ relationship_status: Optional[Union[str, VolumeReplicationRelationshipStatus]]
+ remote_path: Optional[RemotePath]
+ remote_volume_region: Optional[str]
+ remote_volume_resource_id: Optional[str]
+ replication_id: Optional[str]
+ replication_schedule: Optional[Union[str, ReplicationSchedule]]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ remote_path: Optional[RemotePath] = ...,
+ remote_volume_region: Optional[str] = ...,
+ remote_volume_resource_id: Optional[str] = ...,
+ replication_schedule: Optional[Union[str, ReplicationSchedule]] = ...
) -> None: ...
- @distributed_trace
- def get(
- self,
- location: str,
- quota_limit_name: str,
- **kwargs: Any
- ) -> QuotaItem: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def list(
- self,
- location: str,
- **kwargs: Any
- ) -> ItemPaged[QuotaItem]: ...
+
+ class azure.mgmt.netapp.models.ReplicationSchedule(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DAILY = "daily"
+ ENUM_10_MINUTELY = "_10minutely"
+ HOURLY = "hourly"
- class azure.mgmt.netapp.operations.NetAppResourceRegionInfosOperations:
+ class azure.mgmt.netapp.models.ReplicationStatus(_Model):
+ error_message: Optional[str]
+ healthy: Optional[bool]
+ mirror_state: Optional[Union[str, MirrorState]]
+ relationship_status: Optional[Union[str, VolumeReplicationRelationshipStatus]]
+ total_progress: Optional[str]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ error_message: Optional[str] = ...,
+ healthy: Optional[bool] = ...,
+ mirror_state: Optional[Union[str, MirrorState]] = ...,
+ relationship_status: Optional[Union[str, VolumeReplicationRelationshipStatus]] = ...,
+ total_progress: Optional[str] = ...
) -> None: ...
- @distributed_trace
- def get(
- self,
- location: str,
- **kwargs: Any
- ) -> RegionInfoResource: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def list(
- self,
- location: str,
- **kwargs: Any
- ) -> ItemPaged[RegionInfoResource]: ...
+
+ class azure.mgmt.netapp.models.ReplicationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CROSS_REGION_REPLICATION = "CrossRegionReplication"
+ CROSS_ZONE_REPLICATION = "CrossZoneReplication"
- class azure.mgmt.netapp.operations.NetAppResourceUsagesOperations:
+ class azure.mgmt.netapp.models.Resource(_Model):
+ id: Optional[str]
+ name: Optional[str]
+ system_data: Optional[SystemData]
+ type: Optional[str]
+
+
+ class azure.mgmt.netapp.models.ResourceNameAvailabilityRequest(_Model):
+ name: str
+ resource_group: str
+ type: Union[str, CheckNameResourceTypes]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ name: str,
+ resource_group: str,
+ type: Union[str, CheckNameResourceTypes]
) -> None: ...
- @distributed_trace
- def get(
- self,
- location: str,
- usage_type: str,
- **kwargs: Any
- ) -> UsageResult: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def list(
- self,
- location: str,
- **kwargs: Any
- ) -> ItemPaged[UsageResult]: ...
+
+ class azure.mgmt.netapp.models.RestoreStatus(_Model):
+ error_message: Optional[str]
+ healthy: Optional[bool]
+ mirror_state: Optional[Union[str, MirrorState]]
+ relationship_status: Optional[Union[str, VolumeRestoreRelationshipStatus]]
+ total_transfer_bytes: Optional[int]
+ unhealthy_reason: Optional[str]
- class azure.mgmt.netapp.operations.Operations:
+ class azure.mgmt.netapp.models.SecretPassword(_Model):
+ identity: Optional[SecretPasswordIdentity]
+ key_vault_properties: Optional[SecretPasswordKeyVaultProperties]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ identity: Optional[SecretPasswordIdentity] = ...,
+ key_vault_properties: Optional[SecretPasswordKeyVaultProperties] = ...
) -> None: ...
- @distributed_trace
- def list(self, **kwargs: Any) -> ItemPaged[Operation]: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.operations.PoolsOperations:
+ class azure.mgmt.netapp.models.SecretPasswordIdentity(_Model):
+ principal_id: Optional[str]
+ user_assigned_identity: Optional[str]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ user_assigned_identity: Optional[str] = ...
) -> None: ...
@overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- body: CapacityPool,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[CapacityPool]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.SecretPasswordKeyVaultProperties(_Model):
+ key_vault_uri: str
+ secret_name: str
@overload
- def begin_create_or_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- body: CapacityPool,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[CapacityPool]: ...
+ key_vault_uri: str,
+ secret_name: str
+ ) -> None: ...
@overload
- def begin_create_or_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[CapacityPool]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- body: CapacityPoolPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[CapacityPool]: ...
+ class azure.mgmt.netapp.models.SecurityStyle(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ NTFS = "ntfs"
+ UNIX = "unix"
+
+
+ class azure.mgmt.netapp.models.ServiceLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ FLEXIBLE = "Flexible"
+ PREMIUM = "Premium"
+ STANDARD = "Standard"
+ STANDARD_ZRS = "StandardZRS"
+ ULTRA = "Ultra"
+
+
+ class azure.mgmt.netapp.models.ServiceSpecification(_Model):
+ log_specifications: Optional[list[LogSpecification]]
+ metric_specifications: Optional[list[MetricSpecification]]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- body: CapacityPoolPatch,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[CapacityPool]: ...
+ log_specifications: Optional[list[LogSpecification]] = ...,
+ metric_specifications: Optional[list[MetricSpecification]] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[CapacityPool]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- **kwargs: Any
- ) -> CapacityPool: ...
- @distributed_trace
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> ItemPaged[CapacityPool]: ...
+ class azure.mgmt.netapp.models.SmbAccessBasedEnumeration(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
- class azure.mgmt.netapp.operations.RansomwareReportsOperations:
+ class azure.mgmt.netapp.models.SmbEncryptionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.SmbNonBrowsable(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+ class azure.mgmt.netapp.models.SmbSettings(_Model):
+ smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]]
+ smb_encryption: Optional[Union[str, SmbEncryptionState]]
+ smb_non_browsable: Optional[Union[str, SmbNonBrowsable]]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]] = ...,
+ smb_encryption: Optional[Union[str, SmbEncryptionState]] = ...,
+ smb_non_browsable: Optional[Union[str, SmbNonBrowsable]] = ...
) -> None: ...
@overload
- def begin_clear_suspects(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
- body: RansomwareSuspectsClearRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.Snapshot(ProxyResource):
+ id: str
+ location: str
+ name: str
+ properties: Optional[SnapshotProperties]
+ system_data: SystemData
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_clear_suspects(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
- body: RansomwareSuspectsClearRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ location: str,
+ properties: Optional[SnapshotProperties] = ...
+ ) -> None: ...
@overload
- def begin_clear_suspects(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-01', params_added_on={'2025-12-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'ransomware_report_name', 'accept']}, api_versions_list=['2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def get(
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
- **kwargs: Any
- ) -> RansomwareReport: ...
+ key: str,
+ value: Any
+ ) -> None: ...
- @distributed_trace
- @api_version_validation(method_added_on='2025-12-01', params_added_on={'2025-12-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01'])
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> ItemPaged[RansomwareReport]: ...
+ class azure.mgmt.netapp.models.SnapshotDirectoryVisibility(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ HIDDEN = "Hidden"
+ VISIBLE = "Visible"
- class azure.mgmt.netapp.operations.SnapshotPoliciesOperations:
- def __init__(
- self,
- *args,
- **kwargs
- ) -> None: ...
+ class azure.mgmt.netapp.models.SnapshotPatch(_Model):
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- body: SnapshotPolicyPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SnapshotPolicy]: ...
+ class azure.mgmt.netapp.models.SnapshotPolicy(TrackedResource):
+ etag: Optional[str]
+ id: str
+ location: str
+ name: str
+ properties: SnapshotPolicyProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- body: SnapshotPolicyPatch,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SnapshotPolicy]: ...
+ location: str,
+ properties: SnapshotPolicyProperties,
+ tags: Optional[dict[str, str]] = ...
+ ) -> None: ...
@overload
- def begin_update(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SnapshotPolicy]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.SnapshotPolicyPatch(_Model):
+ id: Optional[str]
+ location: Optional[str]
+ name: Optional[str]
+ properties: Optional[SnapshotPolicyProperties]
+ tags: Optional[dict[str, str]]
+ type: Optional[str]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def create(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- body: SnapshotPolicy,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> SnapshotPolicy: ...
+ location: Optional[str] = ...,
+ properties: Optional[SnapshotPolicyProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
+ ) -> None: ...
@overload
- def create(
- self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- body: SnapshotPolicy,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> SnapshotPolicy: ...
-
- @overload
- def create(
- self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> SnapshotPolicy: ...
-
- @distributed_trace
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- **kwargs: Any
- ) -> SnapshotPolicy: ...
-
- @distributed_trace
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> ItemPaged[SnapshotPolicy]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def list_volumes(
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- snapshot_policy_name: str,
- **kwargs: Any
- ) -> SnapshotPolicyVolumeList: ...
+ key: str,
+ value: Any
+ ) -> None: ...
- class azure.mgmt.netapp.operations.SnapshotsOperations:
+ class azure.mgmt.netapp.models.SnapshotPolicyProperties(_Model):
+ daily_schedule: Optional[DailySchedule]
+ enabled: Optional[bool]
+ hourly_schedule: Optional[HourlySchedule]
+ monthly_schedule: Optional[MonthlySchedule]
+ provisioning_state: Optional[str]
+ weekly_schedule: Optional[WeeklySchedule]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ daily_schedule: Optional[DailySchedule] = ...,
+ enabled: Optional[bool] = ...,
+ hourly_schedule: Optional[HourlySchedule] = ...,
+ monthly_schedule: Optional[MonthlySchedule] = ...,
+ weekly_schedule: Optional[WeeklySchedule] = ...
) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Snapshot,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Snapshot]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.SnapshotPolicyVolumeList(_Model):
+ next_link: Optional[str]
+ value: list[Volume]
@overload
- def begin_create(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Snapshot,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Snapshot]: ...
+ next_link: Optional[str] = ...,
+ value: list[Volume]
+ ) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Snapshot]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @overload
- def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: SnapshotRestoreFiles,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ class azure.mgmt.netapp.models.SnapshotProperties(_Model):
+ created: Optional[datetime]
+ provisioning_state: Optional[str]
+ snapshot_id: Optional[str]
- @overload
- def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: SnapshotRestoreFiles,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+
+ class azure.mgmt.netapp.models.SnapshotRestoreFiles(_Model):
+ destination_path: Optional[str]
+ file_paths: list[str]
@overload
- def begin_restore_files(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ destination_path: Optional[str] = ...,
+ file_paths: list[str]
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: SnapshotPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Snapshot]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.SnapshotUsage(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ CREATE_NEW_SNAPSHOT = "CreateNewSnapshot"
+ USE_EXISTING_SNAPSHOT = "UseExistingSnapshot"
+
+
+ class azure.mgmt.netapp.models.SubvolumeInfo(ProxyResource):
+ id: str
+ name: str
+ properties: Optional[SubvolumeProperties]
+ system_data: SystemData
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: SnapshotPatch,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Snapshot]: ...
+ properties: Optional[SubvolumeProperties] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Snapshot]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def get(
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- **kwargs: Any
- ) -> Snapshot: ...
+ key: str,
+ value: Any
+ ) -> None: ...
- @distributed_trace
- def list(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> ItemPaged[Snapshot]: ...
+ class azure.mgmt.netapp.models.SubvolumeModel(_Model):
+ id: Optional[str]
+ name: Optional[str]
+ properties: Optional[SubvolumeModelProperties]
+ type: Optional[str]
- class azure.mgmt.netapp.operations.SubvolumesOperations:
+ def __getattr__(self, name: str) -> Any: ...
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ properties: Optional[SubvolumeModelProperties] = ...
) -> None: ...
@overload
- def begin_create(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: SubvolumeInfo,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SubvolumeInfo]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.SubvolumeModelProperties(_Model):
+ accessed_time_stamp: Optional[datetime]
+ bytes_used: Optional[int]
+ changed_time_stamp: Optional[datetime]
+ creation_time_stamp: Optional[datetime]
+ modified_time_stamp: Optional[datetime]
+ parent_path: Optional[str]
+ path: Optional[str]
+ permissions: Optional[str]
+ provisioning_state: Optional[str]
+ size: Optional[int]
@overload
- def begin_create(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: SubvolumeInfo,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SubvolumeInfo]: ...
+ accessed_time_stamp: Optional[datetime] = ...,
+ bytes_used: Optional[int] = ...,
+ changed_time_stamp: Optional[datetime] = ...,
+ creation_time_stamp: Optional[datetime] = ...,
+ modified_time_stamp: Optional[datetime] = ...,
+ parent_path: Optional[str] = ...,
+ path: Optional[str] = ...,
+ permissions: Optional[str] = ...,
+ provisioning_state: Optional[str] = ...,
+ size: Optional[int] = ...
+ ) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SubvolumeInfo]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @distributed_trace
- def begin_get_metadata(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- **kwargs: Any
- ) -> LROPoller[SubvolumeModel]: ...
+ class azure.mgmt.netapp.models.SubvolumePatchParams(_Model):
+ path: Optional[str]
+ size: Optional[int]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: SubvolumePatchRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SubvolumeInfo]: ...
+ path: Optional[str] = ...,
+ size: Optional[int] = ...
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: SubvolumePatchRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SubvolumeInfo]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.SubvolumePatchRequest(_Model):
+ properties: Optional[SubvolumePatchParams]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[SubvolumeInfo]: ...
+ properties: Optional[SubvolumePatchParams] = ...
+ ) -> None: ...
- @distributed_trace
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- **kwargs: Any
- ) -> SubvolumeInfo: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def list_by_volume(
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> ItemPaged[SubvolumeInfo]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
- class azure.mgmt.netapp.operations.VolumeGroupsOperations:
+ class azure.mgmt.netapp.models.SubvolumeProperties(_Model):
+ parent_path: Optional[str]
+ path: Optional[str]
+ provisioning_state: Optional[str]
+ size: Optional[int]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ parent_path: Optional[str] = ...,
+ path: Optional[str] = ...,
+ size: Optional[int] = ...
) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- body: VolumeGroupDetails,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeGroupDetails]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.SuspectFile(_Model):
+ file_timestamp: Optional[datetime]
+ suspect_file_name: Optional[str]
+
+
+ class azure.mgmt.netapp.models.SvmPeerCommandResponse(_Model):
+ properties: Optional[SvmPeerCommandResponseProperties]
@overload
- def begin_create(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- body: VolumeGroupDetails,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeGroupDetails]: ...
+ properties: Optional[SvmPeerCommandResponseProperties] = ...
+ ) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeGroupDetails]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @distributed_trace
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- **kwargs: Any
- ) -> VolumeGroupDetails: ...
+ class azure.mgmt.netapp.models.SvmPeerCommandResponseProperties(_Model):
+ svm_peering_command: Optional[str]
- @distributed_trace
- def list_by_net_app_account(
+ @overload
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- **kwargs: Any
- ) -> ItemPaged[VolumeGroup]: ...
+ *,
+ svm_peering_command: Optional[str] = ...
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- class azure.mgmt.netapp.operations.VolumeQuotaRulesOperations:
+ class azure.mgmt.netapp.models.SystemData(_Model):
+ created_at: Optional[datetime]
+ created_by: Optional[str]
+ created_by_type: Optional[Union[str, CreatedByType]]
+ last_modified_at: Optional[datetime]
+ last_modified_by: Optional[str]
+ last_modified_by_type: Optional[Union[str, CreatedByType]]
+ @overload
def __init__(
self,
- *args,
- **kwargs
+ *,
+ created_at: Optional[datetime] = ...,
+ created_by: Optional[str] = ...,
+ created_by_type: Optional[Union[str, CreatedByType]] = ...,
+ last_modified_at: Optional[datetime] = ...,
+ last_modified_by: Optional[str] = ...,
+ last_modified_by_type: Optional[Union[str, CreatedByType]] = ...
) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: VolumeQuotaRule,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeQuotaRule]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.TrackedResource(Resource):
+ id: str
+ location: str
+ name: str
+ system_data: SystemData
+ tags: Optional[dict[str, str]]
+ type: str
@overload
- def begin_create(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: VolumeQuotaRule,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeQuotaRule]: ...
+ location: str,
+ tags: Optional[dict[str, str]] = ...
+ ) -> None: ...
@overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeQuotaRule]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+
+ class azure.mgmt.netapp.models.UpdateNetworkSiblingSetRequest(_Model):
+ network_features: Union[str, NetworkFeatures]
+ network_sibling_set_id: str
+ network_sibling_set_state_id: str
+ subnet_id: str
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: VolumeQuotaRulePatch,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeQuotaRule]: ...
+ network_features: Union[str, NetworkFeatures],
+ network_sibling_set_id: str,
+ network_sibling_set_state_id: str,
+ subnet_id: str
+ ) -> None: ...
@overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: VolumeQuotaRulePatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeQuotaRule]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.UsageName(_Model):
+ localized_value: Optional[str]
+ value: Optional[str]
@overload
- def begin_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[VolumeQuotaRule]: ...
+ localized_value: Optional[str] = ...,
+ value: Optional[str] = ...
+ ) -> None: ...
- @distributed_trace
- def get(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- **kwargs: Any
- ) -> VolumeQuotaRule: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def list_by_volume(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> ItemPaged[VolumeQuotaRule]: ...
+ class azure.mgmt.netapp.models.UsageProperties(_Model):
+ current_value: Optional[int]
+ limit: Optional[int]
+ unit: Optional[str]
- class azure.mgmt.netapp.operations.VolumesOperations:
- def __init__(
- self,
- *args,
- **kwargs
- ) -> None: ...
+ class azure.mgmt.netapp.models.UsageResult(_Model):
+ id: Optional[str]
+ name: Optional[UsageName]
+ properties: Optional[UsageProperties]
- @distributed_trace
- def begin_authorize_external_replication(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> LROPoller[SvmPeerCommandResponse]: ...
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_authorize_replication(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: AuthorizeRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ properties: Optional[UsageProperties] = ...
+ ) -> None: ...
@overload
- def begin_authorize_replication(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: AuthorizeRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.UserAssignedIdentity(_Model):
+ client_id: Optional[str]
+ principal_id: Optional[str]
+
+
+ class azure.mgmt.netapp.models.Volume(TrackedResource):
+ etag: Optional[str]
+ id: str
+ location: str
+ name: str
+ properties: VolumeProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+ zones: Optional[list[str]]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_authorize_replication(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ location: str,
+ properties: VolumeProperties,
+ tags: Optional[dict[str, str]] = ...,
+ zones: Optional[list[str]] = ...
+ ) -> None: ...
@overload
- def begin_break_file_locks(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[BreakFileLocksRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeBackupProperties(_Model):
+ backup_policy_id: Optional[str]
+ backup_vault_id: Optional[str]
+ policy_enforced: Optional[bool]
@overload
- def begin_break_file_locks(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[BreakFileLocksRequest] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ backup_policy_id: Optional[str] = ...,
+ backup_vault_id: Optional[str] = ...,
+ policy_enforced: Optional[bool] = ...
+ ) -> None: ...
@overload
- def begin_break_file_locks(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @overload
- def begin_break_replication(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[BreakReplicationRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+
+ class azure.mgmt.netapp.models.VolumeBackupRelationshipStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ FAILED = "Failed"
+ IDLE = "Idle"
+ TRANSFERRING = "Transferring"
+ UNKNOWN = "Unknown"
+
+
+ class azure.mgmt.netapp.models.VolumeBackups(_Model):
+ backups_count: Optional[int]
+ policy_enabled: Optional[bool]
+ volume_name: Optional[str]
+ volume_resource_id: Optional[str]
@overload
- def begin_break_replication(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[BreakReplicationRequest] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ backups_count: Optional[int] = ...,
+ policy_enabled: Optional[bool] = ...,
+ volume_name: Optional[str] = ...,
+ volume_resource_id: Optional[str] = ...
+ ) -> None: ...
@overload
- def begin_break_replication(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeGroup(_Model):
+ id: Optional[str]
+ location: Optional[str]
+ name: Optional[str]
+ properties: Optional[VolumeGroupListProperties]
+ type: Optional[str]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_create_or_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Volume,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Volume]: ...
+ location: Optional[str] = ...,
+ properties: Optional[VolumeGroupListProperties] = ...
+ ) -> None: ...
@overload
- def begin_create_or_update(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Volume,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Volume]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeGroupDetails(ProxyResource):
+ id: str
+ location: Optional[str]
+ name: str
+ properties: Optional[VolumeGroupProperties]
+ system_data: SystemData
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_create_or_update(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[Volume]: ...
+ location: Optional[str] = ...,
+ properties: Optional[VolumeGroupProperties] = ...
+ ) -> None: ...
- @distributed_trace
- def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- *,
- force_delete: Optional[bool] = ...,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def begin_delete_replication(
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
- @distributed_trace
- def begin_finalize_external_replication(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
- @distributed_trace
- def begin_finalize_relocation(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ class azure.mgmt.netapp.models.VolumeGroupListProperties(_Model):
+ group_meta_data: Optional[VolumeGroupMetaData]
+ provisioning_state: Optional[str]
@overload
- def begin_list_get_group_id_list_for_ldap_user(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: GetGroupIdListForLDAPUserRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ...
+ group_meta_data: Optional[VolumeGroupMetaData] = ...
+ ) -> None: ...
@overload
- def begin_list_get_group_id_list_for_ldap_user(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: GetGroupIdListForLDAPUserRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeGroupMetaData(_Model):
+ application_identifier: Optional[str]
+ application_type: Optional[Union[str, ApplicationType]]
+ global_placement_rules: Optional[list[PlacementKeyValuePairs]]
+ group_description: Optional[str]
+ volumes_count: Optional[int]
@overload
- def begin_list_get_group_id_list_for_ldap_user(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ...
+ application_identifier: Optional[str] = ...,
+ application_type: Optional[Union[str, ApplicationType]] = ...,
+ global_placement_rules: Optional[list[PlacementKeyValuePairs]] = ...,
+ group_description: Optional[str] = ...
+ ) -> None: ...
@overload
- def begin_list_quota_report(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[QuotaReportFilterRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[ListQuotaReportResult]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeGroupProperties(_Model):
+ group_meta_data: Optional[VolumeGroupMetaData]
+ provisioning_state: Optional[str]
+ volumes: Optional[list[VolumeGroupVolumeProperties]]
@overload
- def begin_list_quota_report(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[QuotaReportFilterRequest] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[ListQuotaReportResult]: ...
-
+ group_meta_data: Optional[VolumeGroupMetaData] = ...,
+ volumes: Optional[list[VolumeGroupVolumeProperties]] = ...
+ ) -> None: ...
+
@overload
- def begin_list_quota_report(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[ListQuotaReportResult]: ...
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeGroupVolumeProperties(_Model):
+ id: Optional[str]
+ name: Optional[str]
+ properties: VolumeProperties
+ tags: Optional[dict[str, str]]
+ type: Optional[str]
+ zones: Optional[list[str]]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_peer_external_cluster(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: PeerClusterForVolumeMigrationRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[ClusterPeerCommandResponse]: ...
+ name: Optional[str] = ...,
+ properties: VolumeProperties,
+ tags: Optional[dict[str, str]] = ...,
+ zones: Optional[list[str]] = ...
+ ) -> None: ...
@overload
- def begin_peer_external_cluster(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: PeerClusterForVolumeMigrationRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[ClusterPeerCommandResponse]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeLanguage(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ AR = "ar"
+ AR_UTF8 = "ar.utf-8"
+ C = "c"
+ CS = "cs"
+ CS_UTF8 = "cs.utf-8"
+ C_UTF8 = "c.utf-8"
+ DA = "da"
+ DA_UTF8 = "da.utf-8"
+ DE = "de"
+ DE_UTF8 = "de.utf-8"
+ EN = "en"
+ EN_US = "en-us"
+ EN_US_UTF8 = "en-us.utf-8"
+ EN_UTF8 = "en.utf-8"
+ ES = "es"
+ ES_UTF8 = "es.utf-8"
+ FI = "fi"
+ FI_UTF8 = "fi.utf-8"
+ FR = "fr"
+ FR_UTF8 = "fr.utf-8"
+ HE = "he"
+ HE_UTF8 = "he.utf-8"
+ HR = "hr"
+ HR_UTF8 = "hr.utf-8"
+ HU = "hu"
+ HU_UTF8 = "hu.utf-8"
+ IT = "it"
+ IT_UTF8 = "it.utf-8"
+ JA = "ja"
+ JA_JP932 = "ja-jp.932"
+ JA_JP932_UTF8 = "ja-jp.932.utf-8"
+ JA_JP_PCK = "ja-jp.pck"
+ JA_JP_PCK_UTF8 = "ja-jp.pck.utf-8"
+ JA_JP_PCK_V2 = "ja-jp.pck-v2"
+ JA_JP_PCK_V2_UTF8 = "ja-jp.pck-v2.utf-8"
+ JA_UTF8 = "ja.utf-8"
+ JA_V1 = "ja-v1"
+ JA_V1_UTF8 = "ja-v1.utf-8"
+ KO = "ko"
+ KO_UTF8 = "ko.utf-8"
+ NL = "nl"
+ NL_UTF8 = "nl.utf-8"
+ NO = "no"
+ NO_UTF8 = "no.utf-8"
+ PL = "pl"
+ PL_UTF8 = "pl.utf-8"
+ PT = "pt"
+ PT_UTF8 = "pt.utf-8"
+ RO = "ro"
+ RO_UTF8 = "ro.utf-8"
+ RU = "ru"
+ RU_UTF8 = "ru.utf-8"
+ SK = "sk"
+ SK_UTF8 = "sk.utf-8"
+ SL = "sl"
+ SL_UTF8 = "sl.utf-8"
+ SV = "sv"
+ SV_UTF8 = "sv.utf-8"
+ TR = "tr"
+ TR_UTF8 = "tr.utf-8"
+ UTF8_MB4 = "utf8mb4"
+ ZH = "zh"
+ ZH_GBK = "zh.gbk"
+ ZH_GBK_UTF8 = "zh.gbk.utf-8"
+ ZH_TW = "zh-tw"
+ ZH_TW_BIG5 = "zh-tw.big5"
+ ZH_TW_BIG5_UTF8 = "zh-tw.big5.utf-8"
+ ZH_TW_UTF8 = "zh-tw.utf-8"
+ ZH_UTF8 = "zh.utf-8"
+
+
+ class azure.mgmt.netapp.models.VolumePatch(_Model):
+ id: Optional[str]
+ location: Optional[str]
+ name: Optional[str]
+ properties: Optional[VolumePatchProperties]
+ tags: Optional[dict[str, str]]
+ type: Optional[str]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_peer_external_cluster(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[ClusterPeerCommandResponse]: ...
+ location: Optional[str] = ...,
+ properties: Optional[VolumePatchProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
+ ) -> None: ...
- @distributed_trace
- def begin_perform_replication_transfer(
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumePatchProperties(_Model):
+ cool_access: Optional[bool]
+ cool_access_retrieval_policy: Optional[Union[str, CoolAccessRetrievalPolicy]]
+ cool_access_tiering_policy: Optional[Union[str, CoolAccessTieringPolicy]]
+ coolness_period: Optional[int]
+ data_protection: Optional[VolumePatchPropertiesDataProtection]
+ default_group_quota_in_ki_bs: Optional[int]
+ default_user_quota_in_ki_bs: Optional[int]
+ export_policy: Optional[VolumePatchPropertiesExportPolicy]
+ is_default_quota_enabled: Optional[bool]
+ protocol_types: Optional[list[str]]
+ service_level: Optional[Union[str, ServiceLevel]]
+ smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]]
+ smb_non_browsable: Optional[Union[str, SmbNonBrowsable]]
+ snapshot_directory_visible: Optional[bool]
+ throughput_mibps: Optional[float]
+ unix_permissions: Optional[str]
+ usage_threshold: Optional[int]
@overload
- def begin_pool_change(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: PoolChangeRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ cool_access: Optional[bool] = ...,
+ cool_access_retrieval_policy: Optional[Union[str, CoolAccessRetrievalPolicy]] = ...,
+ cool_access_tiering_policy: Optional[Union[str, CoolAccessTieringPolicy]] = ...,
+ coolness_period: Optional[int] = ...,
+ data_protection: Optional[VolumePatchPropertiesDataProtection] = ...,
+ default_group_quota_in_ki_bs: Optional[int] = ...,
+ default_user_quota_in_ki_bs: Optional[int] = ...,
+ export_policy: Optional[VolumePatchPropertiesExportPolicy] = ...,
+ is_default_quota_enabled: Optional[bool] = ...,
+ protocol_types: Optional[list[str]] = ...,
+ service_level: Optional[Union[str, ServiceLevel]] = ...,
+ smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]] = ...,
+ smb_non_browsable: Optional[Union[str, SmbNonBrowsable]] = ...,
+ snapshot_directory_visible: Optional[bool] = ...,
+ throughput_mibps: Optional[float] = ...,
+ unix_permissions: Optional[str] = ...,
+ usage_threshold: Optional[int] = ...
+ ) -> None: ...
@overload
- def begin_pool_change(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumePatchPropertiesDataProtection(_Model):
+ backup: Optional[VolumeBackupProperties]
+ ransomware_protection: Optional[RansomwareProtectionPatchSettings]
+ snapshot: Optional[VolumeSnapshotProperties]
+
+ @overload
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: PoolChangeRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ backup: Optional[VolumeBackupProperties] = ...,
+ ransomware_protection: Optional[RansomwareProtectionPatchSettings] = ...,
+ snapshot: Optional[VolumeSnapshotProperties] = ...
+ ) -> None: ...
@overload
- def begin_pool_change(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumePatchPropertiesExportPolicy(_Model):
+ rules: Optional[list[ExportPolicyRule]]
+
+ @overload
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ rules: Optional[list[ExportPolicyRule]] = ...
+ ) -> None: ...
- @distributed_trace
- def begin_populate_availability_zone(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> LROPoller[Volume]: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
- @distributed_trace
- def begin_re_initialize_replication(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- **kwargs: Any
- ) -> LROPoller[None]: ...
+
+ class azure.mgmt.netapp.models.VolumeProperties(_Model):
+ accept_grow_capacity_pool_for_short_term_clone_split: Optional[Union[str, AcceptGrowCapacityPoolForShortTermCloneSplit]]
+ actual_throughput_mibps: Optional[float]
+ avs_data_store: Optional[Union[str, AvsDataStore]]
+ backup_id: Optional[str]
+ baremetal_tenant_id: Optional[str]
+ breakthrough_mode: Optional[Union[str, BreakthroughMode]]
+ capacity_pool_resource_id: Optional[str]
+ clone_progress: Optional[int]
+ cool_access: Optional[bool]
+ cool_access_retrieval_policy: Optional[Union[str, CoolAccessRetrievalPolicy]]
+ cool_access_tiering_policy: Optional[Union[str, CoolAccessTieringPolicy]]
+ coolness_period: Optional[int]
+ creation_token: str
+ data_protection: Optional[VolumePropertiesDataProtection]
+ data_store_resource_id: Optional[list[str]]
+ default_group_quota_in_ki_bs: Optional[int]
+ default_user_quota_in_ki_bs: Optional[int]
+ delete_base_snapshot: Optional[bool]
+ effective_network_features: Optional[Union[str, NetworkFeatures]]
+ enable_subvolumes: Optional[Union[str, EnableSubvolumes]]
+ encrypted: Optional[bool]
+ encryption_key_source: Optional[Union[str, EncryptionKeySource]]
+ export_policy: Optional[VolumePropertiesExportPolicy]
+ file_access_logs: Optional[Union[str, FileAccessLogs]]
+ file_system_id: Optional[str]
+ inherited_size_in_bytes: Optional[int]
+ is_default_quota_enabled: Optional[bool]
+ is_large_volume: Optional[bool]
+ is_restoring: Optional[bool]
+ kerberos_enabled: Optional[bool]
+ key_vault_private_endpoint_resource_id: Optional[str]
+ language: Optional[Union[str, VolumeLanguage]]
+ large_volume_type: Optional[Union[str, LargeVolumeType]]
+ ldap_enabled: Optional[bool]
+ ldap_server_type: Optional[Union[str, LdapServerType]]
+ maximum_number_of_files: Optional[int]
+ mount_targets: Optional[list[MountTargetProperties]]
+ network_features: Optional[Union[str, NetworkFeatures]]
+ network_sibling_set_id: Optional[str]
+ originating_resource_id: Optional[str]
+ placement_rules: Optional[list[PlacementKeyValuePairs]]
+ protocol_types: Optional[list[str]]
+ provisioned_availability_zone: Optional[str]
+ provisioning_state: Optional[str]
+ proximity_placement_group: Optional[str]
+ security_style: Optional[Union[str, SecurityStyle]]
+ service_level: Optional[Union[str, ServiceLevel]]
+ smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]]
+ smb_continuously_available: Optional[bool]
+ smb_encryption: Optional[bool]
+ smb_non_browsable: Optional[Union[str, SmbNonBrowsable]]
+ snapshot_directory_visible: Optional[bool]
+ snapshot_id: Optional[str]
+ storage_to_network_proximity: Optional[Union[str, VolumeStorageToNetworkProximity]]
+ subnet_id: str
+ t2_network: Optional[str]
+ throughput_mibps: Optional[float]
+ unix_permissions: Optional[str]
+ usage_threshold: int
+ volume_group_name: Optional[str]
+ volume_spec_name: Optional[str]
+ volume_type: Optional[str]
@overload
- def begin_reestablish_replication(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: ReestablishReplicationRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ accept_grow_capacity_pool_for_short_term_clone_split: Optional[Union[str, AcceptGrowCapacityPoolForShortTermCloneSplit]] = ...,
+ avs_data_store: Optional[Union[str, AvsDataStore]] = ...,
+ backup_id: Optional[str] = ...,
+ breakthrough_mode: Optional[Union[str, BreakthroughMode]] = ...,
+ capacity_pool_resource_id: Optional[str] = ...,
+ cool_access: Optional[bool] = ...,
+ cool_access_retrieval_policy: Optional[Union[str, CoolAccessRetrievalPolicy]] = ...,
+ cool_access_tiering_policy: Optional[Union[str, CoolAccessTieringPolicy]] = ...,
+ coolness_period: Optional[int] = ...,
+ creation_token: str,
+ data_protection: Optional[VolumePropertiesDataProtection] = ...,
+ default_group_quota_in_ki_bs: Optional[int] = ...,
+ default_user_quota_in_ki_bs: Optional[int] = ...,
+ delete_base_snapshot: Optional[bool] = ...,
+ enable_subvolumes: Optional[Union[str, EnableSubvolumes]] = ...,
+ encryption_key_source: Optional[Union[str, EncryptionKeySource]] = ...,
+ export_policy: Optional[VolumePropertiesExportPolicy] = ...,
+ is_default_quota_enabled: Optional[bool] = ...,
+ is_large_volume: Optional[bool] = ...,
+ kerberos_enabled: Optional[bool] = ...,
+ key_vault_private_endpoint_resource_id: Optional[str] = ...,
+ language: Optional[Union[str, VolumeLanguage]] = ...,
+ large_volume_type: Optional[Union[str, LargeVolumeType]] = ...,
+ ldap_enabled: Optional[bool] = ...,
+ ldap_server_type: Optional[Union[str, LdapServerType]] = ...,
+ network_features: Optional[Union[str, NetworkFeatures]] = ...,
+ placement_rules: Optional[list[PlacementKeyValuePairs]] = ...,
+ protocol_types: Optional[list[str]] = ...,
+ proximity_placement_group: Optional[str] = ...,
+ security_style: Optional[Union[str, SecurityStyle]] = ...,
+ service_level: Optional[Union[str, ServiceLevel]] = ...,
+ smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]] = ...,
+ smb_continuously_available: Optional[bool] = ...,
+ smb_encryption: Optional[bool] = ...,
+ smb_non_browsable: Optional[Union[str, SmbNonBrowsable]] = ...,
+ snapshot_directory_visible: Optional[bool] = ...,
+ snapshot_id: Optional[str] = ...,
+ subnet_id: str,
+ throughput_mibps: Optional[float] = ...,
+ unix_permissions: Optional[str] = ...,
+ usage_threshold: int,
+ volume_spec_name: Optional[str] = ...,
+ volume_type: Optional[str] = ...
+ ) -> None: ...
@overload
- def begin_reestablish_replication(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumePropertiesDataProtection(_Model):
+ backup: Optional[VolumeBackupProperties]
+ ransomware_protection: Optional[RansomwareProtectionSettings]
+ replication: Optional[ReplicationObject]
+ snapshot: Optional[VolumeSnapshotProperties]
+ volume_relocation: Optional[VolumeRelocationProperties]
+
+ @overload
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: ReestablishReplicationRequest,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ backup: Optional[VolumeBackupProperties] = ...,
+ ransomware_protection: Optional[RansomwareProtectionSettings] = ...,
+ replication: Optional[ReplicationObject] = ...,
+ snapshot: Optional[VolumeSnapshotProperties] = ...,
+ volume_relocation: Optional[VolumeRelocationProperties] = ...
+ ) -> None: ...
@overload
- def begin_reestablish_replication(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumePropertiesExportPolicy(_Model):
+ rules: Optional[list[ExportPolicyRule]]
+
+ @overload
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ rules: Optional[list[ExportPolicyRule]] = ...
+ ) -> None: ...
@overload
- def begin_relocate(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeQuotaRule(TrackedResource):
+ id: str
+ location: str
+ name: str
+ properties: Optional[VolumeQuotaRulesProperties]
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+ def __getattr__(self, name: str) -> Any: ...
+
+ @overload
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[RelocateVolumeRequest] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ location: str,
+ properties: Optional[VolumeQuotaRulesProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
+ ) -> None: ...
@overload
- def begin_relocate(
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[RelocateVolumeRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeQuotaRulePatch(_Model):
+ properties: Optional[VolumeQuotaRulesProperties]
+ tags: Optional[dict[str, str]]
+
+ def __getattr__(self, name: str) -> Any: ...
@overload
- def begin_relocate(
+ def __init__(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
*,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]: ...
+ properties: Optional[VolumeQuotaRulesProperties] = ...,
+ tags: Optional[dict[str, str]] = ...
+ ) -> None: ...
- @distributed_trace
- def begin_reset_cifs_password(
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+ def __setattr__(
+ self,
+ key: str,
+ value: Any
+ ) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeQuotaRulesProperties(_Model):
+ provisioning_state: Optional[Union[str, NetAppProvisioningState]]
+ quota_size_in_ki_bs: Optional[int]
+ quota_target: Optional[str]
+ quota_type: Optional[Union[str, QuotaType]]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ quota_size_in_ki_bs: Optional[int] = ...,
+ quota_target: Optional[str] = ...,
+ quota_type: Optional[Union[str, QuotaType]] = ...
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeRelocationProperties(_Model):
+ ready_to_be_finalized: Optional[bool]
+ relocation_requested: Optional[bool]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ relocation_requested: Optional[bool] = ...
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeReplicationRelationshipStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ IDLE = "Idle"
+ TRANSFERRING = "Transferring"
+
+
+ class azure.mgmt.netapp.models.VolumeRestoreRelationshipStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ FAILED = "Failed"
+ IDLE = "Idle"
+ TRANSFERRING = "Transferring"
+ UNKNOWN = "Unknown"
+
+
+ class azure.mgmt.netapp.models.VolumeRevert(_Model):
+ snapshot_id: Optional[str]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ snapshot_id: Optional[str] = ...
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeSize(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ LARGE = "Large"
+ REGULAR = "Regular"
+
+
+ class azure.mgmt.netapp.models.VolumeSnapshotProperties(_Model):
+ snapshot_policy_id: Optional[str]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ snapshot_policy_id: Optional[str] = ...
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+ class azure.mgmt.netapp.models.VolumeStorageToNetworkProximity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ ACROSS_T2 = "AcrossT2"
+ DEFAULT = "Default"
+ T1 = "T1"
+ T2 = "T2"
+
+
+ class azure.mgmt.netapp.models.WeeklySchedule(_Model):
+ day: Optional[str]
+ hour: Optional[int]
+ minute: Optional[int]
+ snapshots_to_keep: Optional[int]
+ used_bytes: Optional[int]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ day: Optional[str] = ...,
+ hour: Optional[int] = ...,
+ minute: Optional[int] = ...,
+ snapshots_to_keep: Optional[int] = ...,
+ used_bytes: Optional[int] = ...
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None: ...
+
+
+namespace azure.mgmt.netapp.operations
+
+ class azure.mgmt.netapp.operations.AccountsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_change_key_vault(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ body: Optional[ChangeKeyVault] = None,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
) -> LROPoller[None]: ...
- @distributed_trace
- def begin_resync_replication(
+ @overload
+ def begin_change_key_vault(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ body: Optional[ChangeKeyVault] = None,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
) -> LROPoller[None]: ...
@overload
- def begin_revert(
+ def begin_change_key_vault(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: VolumeRevert,
+ body: Optional[IO[bytes]] = None,
*,
content_type: str = "application/json",
**kwargs: Any
) -> LROPoller[None]: ...
@overload
- def begin_revert(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: VolumeRevert,
+ body: NetAppAccount,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]: ...
+ ) -> LROPoller[NetAppAccount]: ...
@overload
- def begin_revert(
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: NetAppAccount,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[NetAppAccount]: ...
+
+ @overload
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]: ...
+ ) -> LROPoller[NetAppAccount]: ...
@distributed_trace
- def begin_revert_relocation(
+ def begin_delete(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
**kwargs: Any
) -> LROPoller[None]: ...
@distributed_trace
- def begin_split_clone_from_parent(
+ def begin_get_change_key_vault_information(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
**kwargs: Any
- ) -> LROPoller[Volume]: ...
+ ) -> LROPoller[GetKeyVaultStatusResponse]: ...
- @overload
- def begin_update(
+ @distributed_trace
+ @api_version_validation(method_added_on='2026-04-15-preview', params_added_on={'2026-04-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name']}, api_versions_list=['2026-04-15-preview', '2026-05-15-preview'])
+ def begin_refresh_ldap_bind_password(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: VolumePatch,
- *,
- content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[Volume]: ...
+ ) -> LROPoller[None]: ...
- @overload
- def begin_update(
+ @distributed_trace
+ def begin_renew_credentials(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: VolumePatch,
- *,
- content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[Volume]: ...
+ ) -> LROPoller[None]: ...
@overload
- def begin_update(
+ def begin_transition_to_cmk(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
+ body: Optional[EncryptionTransitionRequest] = None,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[Volume]: ...
+ ) -> LROPoller[None]: ...
- @distributed_trace
- def get(
+ @overload
+ def begin_transition_to_cmk(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ body: Optional[EncryptionTransitionRequest] = None,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> Volume: ...
+ ) -> LROPoller[None]: ...
- @distributed_trace
- def list(
+ @overload
+ def begin_transition_to_cmk(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> ItemPaged[Volume]: ...
+ ) -> LROPoller[None]: ...
@overload
- def list_replications(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[ListReplicationsRequest] = None,
+ body: NetAppAccountPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> ItemPaged[Replication]: ...
+ ) -> LROPoller[NetAppAccount]: ...
@overload
- def list_replications(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[ListReplicationsRequest] = None,
+ body: NetAppAccountPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> ItemPaged[Replication]: ...
+ ) -> LROPoller[NetAppAccount]: ...
@overload
- def list_replications(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> ItemPaged[Replication]: ...
+ ) -> LROPoller[NetAppAccount]: ...
@distributed_trace
- def replication_status(
+ def get(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ **kwargs: Any
+ ) -> NetAppAccount: ...
+
+ @distributed_trace
+ def list(
+ self,
+ resource_group_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[NetAppAccount]: ...
+
+ @distributed_trace
+ def list_by_subscription(self, **kwargs: Any) -> ItemPaged[NetAppAccount]: ...
+
+
+ class azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: ActiveDirectoryConfig,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ActiveDirectoryConfig]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: ActiveDirectoryConfig,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ActiveDirectoryConfig]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ActiveDirectoryConfig]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'active_directory_config_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: ActiveDirectoryConfigUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ActiveDirectoryConfig]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: ActiveDirectoryConfigUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ActiveDirectoryConfig]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ActiveDirectoryConfig]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'active_directory_config_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ **kwargs: Any
+ ) -> ActiveDirectoryConfig: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_resource_group(
+ self,
+ resource_group_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ActiveDirectoryConfig]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_subscription(self, **kwargs: Any) -> ItemPaged[ActiveDirectoryConfig]: ...
+
+
+ class azure.mgmt.netapp.operations.BackupPoliciesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: BackupPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupPolicy]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: BackupPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupPolicy]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupPolicy]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: BackupPolicyPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupPolicy]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: BackupPolicyPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupPolicy]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupPolicy]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ **kwargs: Any
+ ) -> BackupPolicy: ...
+
+ @distributed_trace
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[BackupPolicy]: ...
+
+
+ class azure.mgmt.netapp.operations.BackupVaultsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: BackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupVault]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: BackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupVault]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupVault]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: BackupVaultPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupVault]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: BackupVaultPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupVault]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[BackupVault]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ **kwargs: Any
+ ) -> BackupVault: ...
+
+ @distributed_trace
+ def list_by_net_app_account(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[BackupVault]: ...
+
+
+ class azure.mgmt.netapp.operations.BackupsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Backup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Backup]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Backup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Backup]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Backup]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Optional[BackupPatch] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Backup]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Optional[BackupPatch] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Backup]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Backup]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ **kwargs: Any
+ ) -> Backup: ...
+
+ @distributed_trace
+ def get_latest_status(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> BackupStatus: ...
+
+ @distributed_trace
+ def get_volume_latest_restore_status(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> RestoreStatus: ...
+
+ @distributed_trace
+ def list_by_vault(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ *,
+ filter: Optional[str] = ...,
+ **kwargs: Any
+ ) -> ItemPaged[Backup]: ...
+
+
+ class azure.mgmt.netapp.operations.BackupsUnderAccountOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_migrate_backups(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: BackupsMigrationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_migrate_backups(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: BackupsMigrationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_migrate_backups(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+
+ class azure.mgmt.netapp.operations.BackupsUnderBackupVaultOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: BackupRestoreFiles,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: BackupRestoreFiles,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+
+ class azure.mgmt.netapp.operations.BackupsUnderVolumeOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_migrate_backups(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: BackupsMigrationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_migrate_backups(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: BackupsMigrationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_migrate_backups(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+
+ class azure.mgmt.netapp.operations.BucketsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: Bucket,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Bucket]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: Bucket,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Bucket]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Bucket]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_generate_akv_credentials(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: BucketCredentialsExpiry,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_generate_akv_credentials(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: BucketCredentialsExpiry,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_generate_akv_credentials(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def begin_refresh_certificate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: BucketPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Bucket]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: BucketPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Bucket]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Bucket]: ...
+
+ @overload
+ def generate_credentials(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: BucketCredentialsExpiry,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> BucketGenerateCredentials: ...
+
+ @overload
+ def generate_credentials(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: BucketCredentialsExpiry,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> BucketGenerateCredentials: ...
+
+ @overload
+ def generate_credentials(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> BucketGenerateCredentials: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'bucket_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ **kwargs: Any
+ ) -> Bucket: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[Bucket]: ...
+
+
+ class azure.mgmt.netapp.operations.CachesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: Cache,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: Cache,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: PoolChangeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: PoolChangeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def begin_reset_smb_password(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: CacheUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: CacheUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Cache]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ **kwargs: Any
+ ) -> Cache: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2026-01-01', params_added_on={'2026-01-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'accept']}, api_versions_list=['2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[Cache]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'cache_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def list_peering_passphrases(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ **kwargs: Any
+ ) -> PeeringPassphrases: ...
+
+
+ class azure.mgmt.netapp.operations.ElasticAccountsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: ElasticAccount,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticAccount]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: ElasticAccount,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticAccount]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticAccount]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: ElasticAccountUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticAccount]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: ElasticAccountUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticAccount]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticAccount]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ElasticAccount: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_resource_group(
+ self,
+ resource_group_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticAccount]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_subscription(self, **kwargs: Any) -> ItemPaged[ElasticAccount]: ...
+
+
+ class azure.mgmt.netapp.operations.ElasticBackupPoliciesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: ElasticBackupPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupPolicy]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: ElasticBackupPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupPolicy]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupPolicy]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_policy_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: ElasticBackupPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupPolicy]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: ElasticBackupPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupPolicy]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupPolicy]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_policy_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ **kwargs: Any
+ ) -> ElasticBackupPolicy: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_account(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticBackupPolicy]: ...
+
+
+ class azure.mgmt.netapp.operations.ElasticBackupVaultsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: ElasticBackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupVault]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: ElasticBackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupVault]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupVault]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: ElasticBackupVaultUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupVault]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: ElasticBackupVaultUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupVault]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackupVault]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ **kwargs: Any
+ ) -> ElasticBackupVault: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_account(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticBackupVault]: ...
+
+
+ class azure.mgmt.netapp.operations.ElasticBackupsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: ElasticBackup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackup]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: ElasticBackup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackup]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackup]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name', 'backup_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: ElasticBackup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackup]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: ElasticBackup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackup]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticBackup]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name', 'backup_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ **kwargs: Any
+ ) -> ElasticBackup: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'backup_vault_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_vault(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticBackup]: ...
+
+
+ class azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_change_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: ChangeZoneRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @overload
+ def begin_change_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: ChangeZoneRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @overload
+ def begin_change_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: ElasticCapacityPool,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: ElasticCapacityPool,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: ElasticCapacityPoolUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: ElasticCapacityPoolUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticCapacityPool]: ...
+
+ @overload
+ def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: CheckElasticVolumeFilePathAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckElasticResourceAvailabilityResponse: ...
+
+ @overload
+ def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: CheckElasticVolumeFilePathAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckElasticResourceAvailabilityResponse: ...
+
+ @overload
+ def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckElasticResourceAvailabilityResponse: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ **kwargs: Any
+ ) -> ElasticCapacityPool: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_account(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticCapacityPool]: ...
+
+
+ class azure.mgmt.netapp.operations.ElasticSnapshotPoliciesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: ElasticSnapshotPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshotPolicy]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: ElasticSnapshotPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshotPolicy]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshotPolicy]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'snapshot_policy_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: ElasticSnapshotPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshotPolicy]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: ElasticSnapshotPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshotPolicy]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshotPolicy]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'snapshot_policy_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ **kwargs: Any
+ ) -> ElasticSnapshotPolicy: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_account(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticSnapshotPolicy]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'snapshot_policy_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_elastic_volumes(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticVolume]: ...
+
+
+ class azure.mgmt.netapp.operations.ElasticSnapshotsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: ElasticSnapshot,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshot]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: ElasticSnapshot,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshot]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticSnapshot]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'snapshot_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'snapshot_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> ElasticSnapshot: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_volume(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticSnapshot]: ...
+
+
+ class azure.mgmt.netapp.operations.ElasticVolumesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ElasticVolume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ElasticVolume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ElasticVolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ElasticVolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ElasticVolumeUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ElasticVolumeUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ElasticVolume]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> ElasticVolume: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-15-preview', params_added_on={'2025-12-15-preview': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'accept']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview'])
+ def list_by_elastic_pool(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[ElasticVolume]: ...
+
+
+ class azure.mgmt.netapp.operations.NetAppResourceOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_update_network_sibling_set(
+ self,
+ location: str,
+ body: UpdateNetworkSiblingSetRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[NetworkSiblingSet]: ...
+
+ @overload
+ def begin_update_network_sibling_set(
+ self,
+ location: str,
+ body: UpdateNetworkSiblingSetRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[NetworkSiblingSet]: ...
+
+ @overload
+ def begin_update_network_sibling_set(
+ self,
+ location: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[NetworkSiblingSet]: ...
+
+ @overload
+ def check_file_path_availability(
+ self,
+ location: str,
+ body: FilePathAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def check_file_path_availability(
+ self,
+ location: str,
+ body: FilePathAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def check_file_path_availability(
+ self,
+ location: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def check_name_availability(
+ self,
+ location: str,
+ body: ResourceNameAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def check_name_availability(
+ self,
+ location: str,
+ body: ResourceNameAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def check_name_availability(
+ self,
+ location: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def check_quota_availability(
+ self,
+ location: str,
+ body: QuotaAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def check_quota_availability(
+ self,
+ location: str,
+ body: QuotaAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def check_quota_availability(
+ self,
+ location: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> CheckAvailabilityResponse: ...
+
+ @overload
+ def query_network_sibling_set(
+ self,
+ location: str,
+ body: QueryNetworkSiblingSetRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> NetworkSiblingSet: ...
+
+ @overload
+ def query_network_sibling_set(
+ self,
+ location: str,
+ body: QueryNetworkSiblingSetRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> NetworkSiblingSet: ...
+
+ @overload
+ def query_network_sibling_set(
+ self,
+ location: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> NetworkSiblingSet: ...
+
+ @distributed_trace
+ def query_region_info(
+ self,
+ location: str,
+ **kwargs: Any
+ ) -> RegionInfo: ...
+
+
+ class azure.mgmt.netapp.operations.NetAppResourceQuotaLimitsAccountOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-08-01', params_added_on={'2025-08-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'quota_limit_name', 'accept']}, api_versions_list=['2025-08-01', '2025-09-01', '2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ quota_limit_name: str,
+ **kwargs: Any
+ ) -> QuotaItem: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-08-01', params_added_on={'2025-08-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'accept']}, api_versions_list=['2025-08-01', '2025-09-01', '2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[QuotaItem]: ...
+
+
+ class azure.mgmt.netapp.operations.NetAppResourceQuotaLimitsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace
+ def get(
+ self,
+ location: str,
+ quota_limit_name: str,
+ **kwargs: Any
+ ) -> QuotaItem: ...
+
+ @distributed_trace
+ def list(
+ self,
+ location: str,
+ **kwargs: Any
+ ) -> ItemPaged[QuotaItem]: ...
+
+
+ class azure.mgmt.netapp.operations.NetAppResourceRegionInfosOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace
+ def get(
+ self,
+ location: str,
+ **kwargs: Any
+ ) -> RegionInfoResource: ...
+
+ @distributed_trace
+ def list(
+ self,
+ location: str,
+ **kwargs: Any
+ ) -> ItemPaged[RegionInfoResource]: ...
+
+
+ class azure.mgmt.netapp.operations.NetAppResourceUsagesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace
+ def get(
+ self,
+ location: str,
+ usage_type: str,
+ **kwargs: Any
+ ) -> UsageResult: ...
+
+ @distributed_trace
+ def list(
+ self,
+ location: str,
+ **kwargs: Any
+ ) -> ItemPaged[UsageResult]: ...
+
+
+ class azure.mgmt.netapp.operations.Operations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace
+ def list(self, **kwargs: Any) -> ItemPaged[Operation]: ...
+
+
+ class azure.mgmt.netapp.operations.PoolsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: CapacityPool,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[CapacityPool]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: CapacityPool,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[CapacityPool]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[CapacityPool]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: CapacityPoolPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[CapacityPool]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: CapacityPoolPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[CapacityPool]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[CapacityPool]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ **kwargs: Any
+ ) -> CapacityPool: ...
+
+ @distributed_trace
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[CapacityPool]: ...
+
+
+ class azure.mgmt.netapp.operations.RansomwareReportsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_clear_suspects(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ body: RansomwareSuspectsClearRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_clear_suspects(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ body: RansomwareSuspectsClearRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_clear_suspects(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-01', params_added_on={'2025-12-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'ransomware_report_name', 'accept']}, api_versions_list=['2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ **kwargs: Any
+ ) -> RansomwareReport: ...
+
+ @distributed_trace
+ @api_version_validation(method_added_on='2025-12-01', params_added_on={'2025-12-01': ['api_version', 'subscription_id', 'resource_group_name', 'account_name', 'pool_name', 'volume_name', 'accept']}, api_versions_list=['2025-12-01', '2025-12-15-preview', '2026-01-01', '2026-01-15-preview', '2026-03-01', '2026-03-15-preview', '2026-04-01', '2026-04-15-preview', '2026-05-01', '2026-05-15-preview'])
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[RansomwareReport]: ...
+
+
+ class azure.mgmt.netapp.operations.SnapshotPoliciesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: SnapshotPolicyPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SnapshotPolicy]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: SnapshotPolicyPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SnapshotPolicy]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SnapshotPolicy]: ...
+
+ @overload
+ def create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: SnapshotPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> SnapshotPolicy: ...
+
+ @overload
+ def create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: SnapshotPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> SnapshotPolicy: ...
+
+ @overload
+ def create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> SnapshotPolicy: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ **kwargs: Any
+ ) -> SnapshotPolicy: ...
+
+ @distributed_trace
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[SnapshotPolicy]: ...
+
+ @distributed_trace
+ def list_volumes(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ **kwargs: Any
+ ) -> SnapshotPolicyVolumeList: ...
+
+
+ class azure.mgmt.netapp.operations.SnapshotsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Snapshot,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Snapshot]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Snapshot,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Snapshot]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Snapshot]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: SnapshotRestoreFiles,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: SnapshotRestoreFiles,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: SnapshotPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Snapshot]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: SnapshotPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Snapshot]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Snapshot]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> Snapshot: ...
+
+ @distributed_trace
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[Snapshot]: ...
+
+
+ class azure.mgmt.netapp.operations.SubvolumesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: SubvolumeInfo,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SubvolumeInfo]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: SubvolumeInfo,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SubvolumeInfo]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SubvolumeInfo]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_get_metadata(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[SubvolumeModel]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: SubvolumePatchRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SubvolumeInfo]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: SubvolumePatchRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SubvolumeInfo]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[SubvolumeInfo]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ **kwargs: Any
+ ) -> SubvolumeInfo: ...
+
+ @distributed_trace
+ def list_by_volume(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[SubvolumeInfo]: ...
+
+
+ class azure.mgmt.netapp.operations.VolumeGroupsOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: VolumeGroupDetails,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeGroupDetails]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: VolumeGroupDetails,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeGroupDetails]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeGroupDetails]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ **kwargs: Any
+ ) -> VolumeGroupDetails: ...
+
+ @distributed_trace
+ def list_by_net_app_account(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[VolumeGroup]: ...
+
+
+ class azure.mgmt.netapp.operations.VolumeQuotaRulesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: VolumeQuotaRule,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeQuotaRule]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: VolumeQuotaRule,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeQuotaRule]: ...
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeQuotaRule]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: VolumeQuotaRulePatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeQuotaRule]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: VolumeQuotaRulePatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeQuotaRule]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[VolumeQuotaRule]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ volume_quota_rule_name: str,
+ **kwargs: Any
+ ) -> VolumeQuotaRule: ...
+
+ @distributed_trace
+ def list_by_volume(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[VolumeQuotaRule]: ...
+
+
+ class azure.mgmt.netapp.operations.VolumesOperations:
+
+ def __init__(
+ self,
+ *args,
+ **kwargs
+ ) -> None: ...
+
+ @distributed_trace
+ def begin_authorize_external_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[SvmPeerCommandResponse]: ...
+
+ @overload
+ def begin_authorize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: AuthorizeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_authorize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: AuthorizeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_authorize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_break_file_locks(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[BreakFileLocksRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_break_file_locks(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[BreakFileLocksRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_break_file_locks(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_break_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[BreakReplicationRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_break_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[BreakReplicationRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_break_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Volume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Volume]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Volume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Volume]: ...
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Volume]: ...
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ *,
+ force_delete: Optional[bool] = ...,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_delete_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_finalize_external_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_finalize_relocation(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_list_get_group_id_list_for_ldap_user(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: GetGroupIdListForLDAPUserRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ...
+
+ @overload
+ def begin_list_get_group_id_list_for_ldap_user(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: GetGroupIdListForLDAPUserRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ...
+
+ @overload
+ def begin_list_get_group_id_list_for_ldap_user(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ...
+
+ @overload
+ def begin_list_quota_report(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[QuotaReportFilterRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ListQuotaReportResult]: ...
+
+ @overload
+ def begin_list_quota_report(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[QuotaReportFilterRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ListQuotaReportResult]: ...
+
+ @overload
+ def begin_list_quota_report(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ListQuotaReportResult]: ...
+
+ @overload
+ def begin_peer_external_cluster(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: PeerClusterForVolumeMigrationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ClusterPeerCommandResponse]: ...
+
+ @overload
+ def begin_peer_external_cluster(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: PeerClusterForVolumeMigrationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ClusterPeerCommandResponse]: ...
+
+ @overload
+ def begin_peer_external_cluster(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[ClusterPeerCommandResponse]: ...
+
+ @distributed_trace
+ def begin_perform_replication_transfer(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: PoolChangeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: PoolChangeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_populate_availability_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[Volume]: ...
+
+ @distributed_trace
+ def begin_re_initialize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_reestablish_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ReestablishReplicationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_reestablish_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: ReestablishReplicationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_reestablish_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_relocate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[RelocateVolumeRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_relocate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[RelocateVolumeRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_relocate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_reset_cifs_password(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_resync_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: VolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: VolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_revert_relocation(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]: ...
+
+ @distributed_trace
+ def begin_split_clone_from_parent(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> LROPoller[Volume]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: VolumePatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Volume]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: VolumePatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Volume]: ...
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[Volume]: ...
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ **kwargs: Any
+ ) -> Volume: ...
+
+ @distributed_trace
+ def list(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ **kwargs: Any
+ ) -> ItemPaged[Volume]: ...
+
+ @overload
+ def list_replications(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[ListReplicationsRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> ItemPaged[Replication]: ...
+
+ @overload
+ def list_replications(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[ListReplicationsRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> ItemPaged[Replication]: ...
+
+ @overload
+ def list_replications(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> ItemPaged[Replication]: ...
+
+ @distributed_trace
+ def replication_status(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
**kwargs: Any
) -> ReplicationStatus: ...
-namespace azure.mgmt.netapp.types
+namespace azure.mgmt.netapp.types
+
+ class azure.mgmt.netapp.types.AccountEncryption(TypedDict, total=False):
+ key "identity": ForwardRef('EncryptionIdentity', module='types')
+ key "keySource": Union[str, KeySource]
+ key "keyVaultProperties": ForwardRef('KeyVaultProperties', module='types')
+ identity: EncryptionIdentity
+ key_source: Union[str, KeySource]
+ key_vault_properties: KeyVaultProperties
+
+
+ class azure.mgmt.netapp.types.AccountProperties(TypedDict, total=False):
+ key "disableShowmount": Optional[bool]
+ key "encryption": ForwardRef('AccountEncryption', module='types')
+ key "entraIdConfig": ForwardRef('EntraIdConfig', module='types')
+ key "ldapConfiguration": ForwardRef('LdapConfiguration', module='types')
+ key "multiAdStatus": Union[str, MultiAdStatus]
+ key "nfsV4IDDomain": Optional[str]
+ key "provisioningState": str
+ activeDirectories: list[ActiveDirectory]
+ active_directories: list[ActiveDirectory]
+ disable_showmount: bool
+ encryption: AccountEncryption
+ entra_id_config: EntraIdConfig
+ ldap_configuration: LdapConfiguration
+ multi_ad_status: Union[str, MultiAdStatus]
+ nfs_v4_id_domain: str
+ provisioning_state: str
+
+
+ class azure.mgmt.netapp.types.AccountPropertiesPatch(TypedDict, total=False):
+ key "encryption": ForwardRef('AccountEncryption', module='types')
+ key "entraIdConfig": ForwardRef('EntraIdConfigPatch', module='types')
+ key "ldapConfiguration": ForwardRef('LdapConfigurationPatch', module='types')
+ key "nfsV4IDDomain": Optional[str]
+ activeDirectories: list[ActiveDirectory]
+ active_directories: list[ActiveDirectory]
+ encryption: AccountEncryption
+ entra_id_config: EntraIdConfigPatch
+ ldap_configuration: LdapConfigurationPatch
+ nfs_v4_id_domain: str
+
+
+ class azure.mgmt.netapp.types.ActiveDirectory(TypedDict, total=False):
+ key "activeDirectoryId": Optional[str]
+ key "adName": str
+ key "aesEncryption": bool
+ key "allowLocalNfsUsersWithLdap": bool
+ key "dns": str
+ key "domain": str
+ key "encryptDCConnections": bool
+ key "kdcIP": str
+ key "ldapOverTLS": bool
+ key "ldapSearchScope": ForwardRef('LdapSearchScopeOpt', module='types')
+ key "ldapSigning": bool
+ key "organizationalUnit": str
+ key "password": str
+ key "preferredServersForLdapClient": str
+ key "serverRootCACertificate": str
+ key "site": str
+ key "smbServerName": str
+ key "status": Union[str, ActiveDirectoryStatus]
+ key "statusDetails": str
+ key "username": str
+ active_directory_id: str
+ ad_name: str
+ administrators: list[str]
+ aes_encryption: bool
+ allow_local_nfs_users_with_ldap: bool
+ backupOperators: list[str]
+ backup_operators: list[str]
+ dns: str
+ domain: str
+ encrypt_dc_connections: bool
+ kdc_ip: str
+ ldap_over_tls: bool
+ ldap_search_scope: LdapSearchScopeOpt
+ ldap_signing: bool
+ organizational_unit: str
+ password: str
+ preferred_servers_for_ldap_client: str
+ securityOperators: list[str]
+ security_operators: list[str]
+ server_root_ca_certificate: str
+ site: str
+ smb_server_name: str
+ status: Union[str, ActiveDirectoryStatus]
+ status_details: str
+ username: str
+
+
+ class azure.mgmt.netapp.types.ActiveDirectoryConfig(TrackedResource):
+ key "etag": str
+ key "id": str
+ key "identity": ForwardRef('ManagedServiceIdentity', module='types')
+ key "location": Required[str]
+ key "name": str
+ key "properties": ForwardRef('ActiveDirectoryConfigProperties', module='types')
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ etag: str
+ id: str
+ identity: ManagedServiceIdentity
+ location: str
+ name: str
+ properties: ActiveDirectoryConfigProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+
+ class azure.mgmt.netapp.types.ActiveDirectoryConfigProperties(TypedDict, total=False):
+ key "activeDirectoryStatus": Union[str, ActiveDirectoryStatus]
+ key "domain": Required[str]
+ key "organizationalUnit": str
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ key "secretPassword": Required[SecretPassword]
+ key "site": Required[str]
+ key "smbServerName": str
+ key "userName": str
+ active_directory_status: Union[str, ActiveDirectoryStatus]
+ administrators: list[str]
+ backupOperators: list[str]
+ backup_operators: list[str]
+ dns: list[str]
+ domain: str
+ organizational_unit: str
+ provisioning_state: Union[str, NetAppProvisioningState]
+ secret_password: SecretPassword
+ securityOperators: list[str]
+ security_operators: list[str]
+ site: str
+ smb_server_name: str
+ user_name: str
+
+
+ class azure.mgmt.netapp.types.ActiveDirectoryConfigUpdate(TypedDict, total=False):
+ key "identity": ForwardRef('ManagedServiceIdentity', module='types')
+ key "properties": ForwardRef('ActiveDirectoryConfigUpdateProperties', module='types')
+ identity: ManagedServiceIdentity
+ properties: ActiveDirectoryConfigUpdateProperties
+ tags: dict[str, str]
+
+
+ class azure.mgmt.netapp.types.ActiveDirectoryConfigUpdateProperties(TypedDict, total=False):
+ key "domain": str
+ key "organizationalUnit": str
+ key "secretPassword": ForwardRef('SecretPassword', module='types')
+ key "site": str
+ key "smbServerName": str
+ key "userName": str
+ administrators: list[str]
+ backupOperators: list[str]
+ backup_operators: list[str]
+ dns: list[str]
+ domain: str
+ organizational_unit: str
+ secret_password: SecretPassword
+ securityOperators: list[str]
+ security_operators: list[str]
+ site: str
+ smb_server_name: str
+ user_name: str
+
+
+ class azure.mgmt.netapp.types.AuthorizeRequest(TypedDict, total=False):
+ key "remoteVolumeResourceId": str
+ remote_volume_resource_id: str
+
+
+ class azure.mgmt.netapp.types.AzureKeyVaultDetails(TypedDict, total=False):
+ key "certificateAkvDetails": ForwardRef('CertificateAkvDetails', module='types')
+ key "credentialsAkvDetails": ForwardRef('CredentialsAkvDetails', module='types')
+ certificate_akv_details: CertificateAkvDetails
+ credentials_akv_details: CredentialsAkvDetails
+
+
+ class azure.mgmt.netapp.types.Backup(ProxyResource):
+ key "id": str
+ key "name": str
+ key "properties": Required[BackupProperties]
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ id: str
+ name: str
+ properties: BackupProperties
+ system_data: SystemData
+ type: str
+
+
+ class azure.mgmt.netapp.types.BackupPatch(TypedDict, total=False):
+ key "properties": ForwardRef('BackupPatchProperties', module='types')
+ properties: BackupPatchProperties
+
+
+ class azure.mgmt.netapp.types.BackupPatchProperties(TypedDict, total=False):
+ key "label": str
+ label: str
+
+
+ class azure.mgmt.netapp.types.BackupPolicy(TrackedResource):
+ key "etag": str
+ key "id": str
+ key "location": Required[str]
+ key "name": str
+ key "properties": Required[BackupPolicyProperties]
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ etag: str
+ id: str
+ location: str
+ name: str
+ properties: BackupPolicyProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+
+ class azure.mgmt.netapp.types.BackupPolicyPatch(TypedDict, total=False):
+ key "id": str
+ key "location": str
+ key "name": str
+ key "properties": ForwardRef('BackupPolicyProperties', module='types')
+ key "type": str
+ id: str
+ location: str
+ name: str
+ properties: BackupPolicyProperties
+ tags: dict[str, str]
+ type: str
+
+
+ class azure.mgmt.netapp.types.BackupPolicyProperties(TypedDict, total=False):
+ key "backupPolicyId": str
+ key "dailyBackupsToKeep": int
+ key "enabled": bool
+ key "monthlyBackupsToKeep": int
+ key "provisioningState": str
+ key "volumesAssigned": int
+ key "weeklyBackupsToKeep": int
+ backup_policy_id: str
+ daily_backups_to_keep: int
+ enabled: bool
+ monthly_backups_to_keep: int
+ provisioning_state: str
+ volumeBackups: list[VolumeBackups]
+ volume_backups: list[VolumeBackups]
+ volumes_assigned: int
+ weekly_backups_to_keep: int
+
+
+ class azure.mgmt.netapp.types.BackupProperties(TypedDict, total=False):
+ key "backupId": str
+ key "backupPolicyResourceId": str
+ key "backupType": Union[str, BackupType]
+ key "completionDate": Optional[str]
+ key "creationDate": str
+ key "failureReason": str
+ key "isLargeVolume": bool
+ key "label": str
+ key "provisioningState": str
+ key "size": int
+ key "snapshotCreationDate": Optional[str]
+ key "snapshotName": str
+ key "useExistingSnapshot": bool
+ key "volumeResourceId": Required[str]
+ backup_id: str
+ backup_policy_resource_id: str
+ backup_type: Union[str, BackupType]
+ completion_date: str
+ creation_date: str
+ failure_reason: str
+ is_large_volume: bool
+ label: str
+ provisioning_state: str
+ size: int
+ snapshot_creation_date: str
+ snapshot_name: str
+ use_existing_snapshot: bool
+ volume_resource_id: str
+
+
+ class azure.mgmt.netapp.types.BackupRestoreFiles(TypedDict, total=False):
+ key "destinationVolumeId": Required[str]
+ key "fileList": Required[list[str]]
+ key "restoreFilePath": str
+ destination_volume_id: str
+ file_list: list[str]
+ restore_file_path: str
+
+
+ class azure.mgmt.netapp.types.BackupVault(TrackedResource):
+ key "id": str
+ key "location": Required[str]
+ key "name": str
+ key "properties": ForwardRef('BackupVaultProperties', module='types')
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ id: str
+ location: str
+ name: str
+ properties: BackupVaultProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+
+ class azure.mgmt.netapp.types.BackupVaultPatch(TypedDict, total=False):
+ tags: dict[str, str]
+
+
+ class azure.mgmt.netapp.types.BackupVaultProperties(TypedDict, total=False):
+ key "provisioningState": str
+ provisioning_state: str
+
+
+ class azure.mgmt.netapp.types.BackupsMigrationRequest(TypedDict, total=False):
+ key "backupVaultId": Required[str]
+ backup_vault_id: str
+
+
+ class azure.mgmt.netapp.types.BindPasswordAkvConfig(TypedDict, total=False):
+ key "azureKeyVaultUri": Required[str]
+ key "secretName": Required[str]
+ key "userAssignedIdentity": str
+ azure_key_vault_uri: str
+ secret_name: str
+ user_assigned_identity: str
+
+
+ class azure.mgmt.netapp.types.BindPasswordAkvConfigPatch(TypedDict, total=False):
+ key "azureKeyVaultUri": str
+ key "secretName": str
+ key "userAssignedIdentity": str
+ azure_key_vault_uri: str
+ secret_name: str
+ user_assigned_identity: str
+
+
+ class azure.mgmt.netapp.types.BreakFileLocksRequest(TypedDict, total=False):
+ key "clientIp": str
+ key "confirmRunningDisruptiveOperation": bool
+ client_ip: str
+ confirm_running_disruptive_operation: bool
+
+
+ class azure.mgmt.netapp.types.BreakReplicationRequest(TypedDict, total=False):
+ key "forceBreakReplication": bool
+ force_break_replication: bool
+
+
+ class azure.mgmt.netapp.types.Bucket(ProxyResource):
+ key "id": str
+ key "name": str
+ key "properties": ForwardRef('BucketProperties', module='types')
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ id: str
+ name: str
+ properties: BucketProperties
+ system_data: SystemData
+ type: str
+
+
+ class azure.mgmt.netapp.types.BucketCredentialsExpiry(TypedDict, total=False):
+ key "keyPairExpiryDays": int
+ key_pair_expiry_days: int
+
+
+ class azure.mgmt.netapp.types.BucketPatch(ProxyResource):
+ key "id": str
+ key "name": str
+ key "properties": ForwardRef('BucketPatchProperties', module='types')
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ id: str
+ name: str
+ properties: BucketPatchProperties
+ system_data: SystemData
+ type: str
+
+
+ class azure.mgmt.netapp.types.BucketPatchProperties(TypedDict, total=False):
+ key "akvDetails": ForwardRef('AzureKeyVaultDetails', module='types')
+ key "fileSystemUser": ForwardRef('FileSystemUser', module='types')
+ key "permissions": Union[str, BucketPatchPermissions]
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ key "server": ForwardRef('BucketServerPatchProperties', module='types')
+ akv_details: AzureKeyVaultDetails
+ file_system_user: FileSystemUser
+ permissions: Union[str, BucketPatchPermissions]
+ provisioning_state: Union[str, NetAppProvisioningState]
+ server: BucketServerPatchProperties
+
+
+ class azure.mgmt.netapp.types.BucketProperties(TypedDict, total=False):
+ key "akvDetails": ForwardRef('AzureKeyVaultDetails', module='types')
+ key "fileSystemUser": ForwardRef('FileSystemUser', module='types')
+ key "path": str
+ key "permissions": Union[str, BucketPermissions]
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ key "server": ForwardRef('BucketServerProperties', module='types')
+ key "status": Union[str, CredentialsStatus]
+ akv_details: AzureKeyVaultDetails
+ file_system_user: FileSystemUser
+ path: str
+ permissions: Union[str, BucketPermissions]
+ provisioning_state: Union[str, NetAppProvisioningState]
+ server: BucketServerProperties
+ status: Union[str, CredentialsStatus]
+
+
+ class azure.mgmt.netapp.types.BucketServerPatchProperties(TypedDict, total=False):
+ key "certificateObject": str
+ key "fqdn": str
+ key "onCertificateConflictAction": Union[str, OnCertificateConflictAction]
+ certificate_object: str
+ fqdn: str
+ on_certificate_conflict_action: Union[str, OnCertificateConflictAction]
+
+
+ class azure.mgmt.netapp.types.BucketServerProperties(TypedDict, total=False):
+ key "certificateCommonName": str
+ key "certificateExpiryDate": str
+ key "certificateObject": str
+ key "fqdn": str
+ key "ipAddress": str
+ key "onCertificateConflictAction": Union[str, OnCertificateConflictAction]
+ certificate_common_name: str
+ certificate_expiry_date: str
+ certificate_object: str
+ fqdn: str
+ ip_address: str
+ on_certificate_conflict_action: Union[str, OnCertificateConflictAction]
- class azure.mgmt.netapp.types.AccountEncryption(TypedDict, total=False):
- key "identity": ForwardRef('EncryptionIdentity', module='types')
- key "keySource": Union[str, KeySource]
- key "keyVaultProperties": ForwardRef('KeyVaultProperties', module='types')
- identity: EncryptionIdentity
- key_source: Union[str, KeySource]
- key_vault_properties: KeyVaultProperties
+
+ class azure.mgmt.netapp.types.Cache(TrackedResource):
+ key "etag": str
+ key "id": str
+ key "location": Required[str]
+ key "name": str
+ key "properties": Required[CacheProperties]
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ etag: str
+ id: str
+ location: str
+ name: str
+ properties: CacheProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+ zones: list[str]
- class azure.mgmt.netapp.types.AccountProperties(TypedDict, total=False):
- key "disableShowmount": Optional[bool]
- key "encryption": ForwardRef('AccountEncryption', module='types')
- key "multiAdStatus": Union[str, MultiAdStatus]
- key "nfsV4IDDomain": Optional[str]
- key "provisioningState": str
- activeDirectories: list[ActiveDirectory]
- active_directories: list[ActiveDirectory]
- disable_showmount: bool
- encryption: AccountEncryption
- multi_ad_status: Union[str, MultiAdStatus]
- nfs_v4_id_domain: str
- provisioning_state: str
+ class azure.mgmt.netapp.types.CacheMountTargetProperties(TypedDict, total=False):
+ key "ipAddress": str
+ key "mountTargetId": str
+ key "smbServerFqdn": str
+ ip_address: str
+ mount_target_id: str
+ smb_server_fqdn: str
- class azure.mgmt.netapp.types.ActiveDirectory(TypedDict, total=False):
- key "activeDirectoryId": Optional[str]
- key "adName": str
- key "aesEncryption": bool
- key "allowLocalNfsUsersWithLdap": bool
- key "dns": str
- key "domain": str
- key "encryptDCConnections": bool
- key "kdcIP": str
- key "ldapOverTLS": bool
- key "ldapSearchScope": ForwardRef('LdapSearchScopeOpt', module='types')
- key "ldapSigning": bool
- key "organizationalUnit": str
- key "password": str
- key "preferredServersForLdapClient": str
- key "serverRootCACertificate": str
- key "site": str
- key "smbServerName": str
- key "status": Union[str, ActiveDirectoryStatus]
- key "statusDetails": str
+ class azure.mgmt.netapp.types.CacheProperties(TypedDict, total=False):
+ key "actualThroughputMibps": float
+ key "cacheState": Union[str, CacheLifeCycleState]
+ key "cacheSubnetResourceId": Required[str]
+ key "cifsChangeNotifications": Union[str, CifsChangeNotifyState]
+ key "encryption": Union[str, EncryptionState]
+ key "encryptionKeySource": Required[Union[str, EncryptionKeySource]]
+ key "exportPolicy": ForwardRef('CachePropertiesExportPolicy', module='types')
+ key "fileAccessLogs": Union[str, CacheFileAccessLogs]
+ key "filePath": Required[str]
+ key "globalFileLocking": Union[str, GlobalFileLockingState]
+ key "kerberos": Union[str, KerberosState]
+ key "keyVaultPrivateEndpointResourceId": str
+ key "language": Union[str, VolumeLanguage]
+ key "ldap": Union[str, LdapState]
+ key "ldapServerType": Union[str, LdapServerType]
+ key "maximumNumberOfFiles": int
+ key "originClusterInformation": Required[OriginClusterInformation]
+ key "peeringSubnetResourceId": Required[str]
+ key "provisioningState": Union[str, CacheProvisioningState]
+ key "size": Required[int]
+ key "smbSettings": ForwardRef('SmbSettings', module='types')
+ key "throughputMibps": float
+ key "writeBack": Union[str, EnableWriteBackState]
+ actual_throughput_mibps: float
+ cache_state: Union[str, CacheLifeCycleState]
+ cache_subnet_resource_id: str
+ cifs_change_notifications: Union[str, CifsChangeNotifyState]
+ encryption: Union[str, EncryptionState]
+ encryption_key_source: Union[str, EncryptionKeySource]
+ export_policy: CachePropertiesExportPolicy
+ file_access_logs: Union[str, CacheFileAccessLogs]
+ file_path: str
+ global_file_locking: Union[str, GlobalFileLockingState]
+ kerberos: Union[str, KerberosState]
+ key_vault_private_endpoint_resource_id: str
+ language: Union[str, VolumeLanguage]
+ ldap: Union[str, LdapState]
+ ldap_server_type: Union[str, LdapServerType]
+ maximum_number_of_files: int
+ mountTargets: list[CacheMountTargetProperties]
+ mount_targets: list[CacheMountTargetProperties]
+ origin_cluster_information: OriginClusterInformation
+ peering_subnet_resource_id: str
+ protocolTypes: list[Union[str, ProtocolTypes]]
+ protocol_types: list[Union[str, ProtocolTypes]]
+ provisioning_state: Union[str, CacheProvisioningState]
+ size: int
+ smb_settings: SmbSettings
+ throughput_mibps: float
+ write_back: Union[str, EnableWriteBackState]
+
+
+ class azure.mgmt.netapp.types.CachePropertiesExportPolicy(TypedDict, total=False):
+ rules: list[ExportPolicyRule]
+
+
+ class azure.mgmt.netapp.types.CacheUpdate(TypedDict, total=False):
+ key "properties": ForwardRef('CacheUpdateProperties', module='types')
+ properties: CacheUpdateProperties
+ tags: dict[str, str]
+
+
+ class azure.mgmt.netapp.types.CacheUpdateProperties(TypedDict, total=False):
+ key "cifsChangeNotifications": Union[str, CifsChangeNotifyState]
+ key "exportPolicy": ForwardRef('CachePropertiesExportPolicy', module='types')
+ key "keyVaultPrivateEndpointResourceId": str
+ key "size": int
+ key "smbSettings": ForwardRef('SmbSettings', module='types')
+ key "throughputMibps": float
+ key "writeBack": Union[str, EnableWriteBackState]
+ cifs_change_notifications: Union[str, CifsChangeNotifyState]
+ export_policy: CachePropertiesExportPolicy
+ key_vault_private_endpoint_resource_id: str
+ protocolTypes: list[Union[str, ProtocolTypes]]
+ protocol_types: list[Union[str, ProtocolTypes]]
+ size: int
+ smb_settings: SmbSettings
+ throughput_mibps: float
+ write_back: Union[str, EnableWriteBackState]
+
+
+ class azure.mgmt.netapp.types.CapacityPool(TrackedResource):
+ key "etag": str
+ key "id": str
+ key "location": Required[str]
+ key "name": str
+ key "properties": Required[PoolProperties]
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ etag: str
+ id: str
+ location: str
+ name: str
+ properties: PoolProperties
+ system_data: SystemData
+ tags: dict[str, str]
+ type: str
+
+
+ class azure.mgmt.netapp.types.CapacityPoolPatch(TypedDict, total=False):
+ key "id": str
+ key "location": str
+ key "name": str
+ key "properties": ForwardRef('PoolPatchProperties', module='types')
+ key "type": str
+ id: str
+ location: str
+ name: str
+ properties: PoolPatchProperties
+ tags: dict[str, str]
+ type: str
+
+
+ class azure.mgmt.netapp.types.CertificateAkvDetails(TypedDict, total=False):
+ key "certificateKeyVaultUri": str
+ key "certificateName": str
+ key "userAssignedIdentity": str
+ certificate_key_vault_uri: str
+ certificate_name: str
+ user_assigned_identity: str
+
+
+ class azure.mgmt.netapp.types.ChangeKeyVault(TypedDict, total=False):
+ key "keyName": Required[str]
+ key "keyVaultPrivateEndpoints": Required[list[KeyVaultPrivateEndpoint]]
+ key "keyVaultResourceId": str
+ key "keyVaultUri": Required[str]
+ key_name: str
+ key_vault_private_endpoints: list[KeyVaultPrivateEndpoint]
+ key_vault_resource_id: str
+ key_vault_uri: str
+
+
+ class azure.mgmt.netapp.types.ChangeZoneRequest(TypedDict, total=False):
+ key "newZone": Required[str]
+ new_zone: str
+
+
+ class azure.mgmt.netapp.types.CheckElasticVolumeFilePathAvailabilityRequest(TypedDict, total=False):
+ key "filePath": Required[str]
+ file_path: str
+
+
+ class azure.mgmt.netapp.types.CifsUser(TypedDict, total=False):
key "username": str
- active_directory_id: str
- ad_name: str
- administrators: list[str]
- aes_encryption: bool
- allow_local_nfs_users_with_ldap: bool
- backupOperators: list[str]
- backup_operators: list[str]
- dns: str
- domain: str
- encrypt_dc_connections: bool
- kdc_ip: str
- ldap_over_tls: bool
- ldap_search_scope: LdapSearchScopeOpt
- ldap_signing: bool
- organizational_unit: str
- password: str
- preferred_servers_for_ldap_client: str
- securityOperators: list[str]
- security_operators: list[str]
- server_root_ca_certificate: str
- site: str
- smb_server_name: str
- status: Union[str, ActiveDirectoryStatus]
- status_details: str
username: str
- class azure.mgmt.netapp.types.AuthorizeRequest(TypedDict, total=False):
- key "remoteVolumeResourceId": str
- remote_volume_resource_id: str
+ class azure.mgmt.netapp.types.CredentialsAkvDetails(TypedDict, total=False):
+ key "credentialsKeyVaultUri": str
+ key "secretName": str
+ key "userAssignedIdentity": str
+ credentials_key_vault_uri: str
+ secret_name: str
+ user_assigned_identity: str
+
+
+ class azure.mgmt.netapp.types.DailySchedule(TypedDict, total=False):
+ key "hour": int
+ key "minute": int
+ key "snapshotsToKeep": int
+ key "usedBytes": int
+ hour: int
+ minute: int
+ snapshots_to_keep: int
+ used_bytes: int
- class azure.mgmt.netapp.types.AzureKeyVaultDetails(TypedDict, total=False):
- key "certificateAkvDetails": ForwardRef('CertificateAkvDetails', module='types')
- key "credentialsAkvDetails": ForwardRef('CredentialsAkvDetails', module='types')
- certificate_akv_details: CertificateAkvDetails
- credentials_akv_details: CredentialsAkvDetails
+ class azure.mgmt.netapp.types.DestinationReplication(TypedDict, total=False):
+ key "region": str
+ key "replicationType": Union[str, ReplicationType]
+ key "resourceId": str
+ key "zone": str
+ region: str
+ replication_type: Union[str, ReplicationType]
+ resource_id: str
+ zone: str
- class azure.mgmt.netapp.types.Backup(ProxyResource):
+ class azure.mgmt.netapp.types.ElasticAccount(TrackedResource):
+ key "eTag": str
key "id": str
+ key "identity": ForwardRef('ManagedServiceIdentity', module='types')
+ key "location": Required[str]
key "name": str
- key "properties": Required[BackupProperties]
+ key "properties": ForwardRef('ElasticAccountProperties', module='types')
key "systemData": ForwardRef('SystemData', module='types')
key "type": str
+ e_tag: str
id: str
+ identity: ManagedServiceIdentity
+ location: str
name: str
- properties: BackupProperties
+ properties: ElasticAccountProperties
system_data: SystemData
+ tags: dict[str, str]
type: str
- class azure.mgmt.netapp.types.BackupPatch(TypedDict, total=False):
- key "properties": ForwardRef('BackupPatchProperties', module='types')
- properties: BackupPatchProperties
+ class azure.mgmt.netapp.types.ElasticAccountProperties(TypedDict, total=False):
+ key "encryption": ForwardRef('ElasticEncryption', module='types')
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ encryption: ElasticEncryption
+ provisioning_state: Union[str, NetAppProvisioningState]
- class azure.mgmt.netapp.types.BackupPatchProperties(TypedDict, total=False):
- key "label": str
- label: str
+ class azure.mgmt.netapp.types.ElasticAccountUpdate(TypedDict, total=False):
+ key "identity": ForwardRef('ManagedServiceIdentity', module='types')
+ key "properties": ForwardRef('ElasticAccountUpdateProperties', module='types')
+ identity: ManagedServiceIdentity
+ properties: ElasticAccountUpdateProperties
+ tags: dict[str, str]
- class azure.mgmt.netapp.types.BackupPolicy(TrackedResource):
- key "etag": str
+ class azure.mgmt.netapp.types.ElasticAccountUpdateProperties(TypedDict, total=False):
+ key "encryption": ForwardRef('ElasticEncryption', module='types')
+ encryption: ElasticEncryption
+
+
+ class azure.mgmt.netapp.types.ElasticBackup(ProxyResource):
key "id": str
- key "location": Required[str]
key "name": str
- key "properties": Required[BackupPolicyProperties]
+ key "properties": ForwardRef('ElasticBackupProperties', module='types')
key "systemData": ForwardRef('SystemData', module='types')
key "type": str
- etag: str
id: str
- location: str
name: str
- properties: BackupPolicyProperties
+ properties: ElasticBackupProperties
system_data: SystemData
- tags: dict[str, str]
type: str
- class azure.mgmt.netapp.types.BackupPolicyPatch(TypedDict, total=False):
+ class azure.mgmt.netapp.types.ElasticBackupPolicy(TrackedResource):
+ key "eTag": str
key "id": str
- key "location": str
+ key "location": Required[str]
key "name": str
- key "properties": ForwardRef('BackupPolicyProperties', module='types')
+ key "properties": ForwardRef('ElasticBackupPolicyProperties', module='types')
+ key "systemData": ForwardRef('SystemData', module='types')
key "type": str
+ e_tag: str
id: str
location: str
name: str
- properties: BackupPolicyProperties
+ properties: ElasticBackupPolicyProperties
+ system_data: SystemData
tags: dict[str, str]
type: str
- class azure.mgmt.netapp.types.BackupPolicyProperties(TypedDict, total=False):
- key "backupPolicyId": str
+ class azure.mgmt.netapp.types.ElasticBackupPolicyProperties(TypedDict, total=False):
+ key "assignedVolumesCount": int
key "dailyBackupsToKeep": int
- key "enabled": bool
key "monthlyBackupsToKeep": int
- key "provisioningState": str
- key "volumesAssigned": int
+ key "policyState": Union[str, ElasticBackupPolicyState]
+ key "provisioningState": Union[str, NetAppProvisioningState]
key "weeklyBackupsToKeep": int
- backup_policy_id: str
+ assigned_volumes_count: int
daily_backups_to_keep: int
- enabled: bool
monthly_backups_to_keep: int
- provisioning_state: str
- volumeBackups: list[VolumeBackups]
- volume_backups: list[VolumeBackups]
- volumes_assigned: int
+ policy_state: Union[str, ElasticBackupPolicyState]
+ provisioning_state: Union[str, NetAppProvisioningState]
weekly_backups_to_keep: int
- class azure.mgmt.netapp.types.BackupProperties(TypedDict, total=False):
- key "backupId": str
- key "backupPolicyResourceId": str
- key "backupType": Union[str, BackupType]
- key "completionDate": Optional[str]
+ class azure.mgmt.netapp.types.ElasticBackupPolicyUpdate(TypedDict, total=False):
+ key "properties": ForwardRef('ElasticBackupPolicyUpdateProperties', module='types')
+ properties: ElasticBackupPolicyUpdateProperties
+ tags: dict[str, str]
+
+
+ class azure.mgmt.netapp.types.ElasticBackupPolicyUpdateProperties(TypedDict, total=False):
+ key "dailyBackupsToKeep": int
+ key "monthlyBackupsToKeep": int
+ key "policyState": Union[str, ElasticBackupPolicyState]
+ key "weeklyBackupsToKeep": int
+ daily_backups_to_keep: int
+ monthly_backups_to_keep: int
+ policy_state: Union[str, ElasticBackupPolicyState]
+ weekly_backups_to_keep: int
+
+
+ class azure.mgmt.netapp.types.ElasticBackupProperties(TypedDict, total=False):
+ key "backupType": Union[str, ElasticBackupType]
+ key "completionDate": str
key "creationDate": str
+ key "elasticBackupPolicyResourceId": str
+ key "elasticSnapshotResourceId": str
+ key "elasticVolumeResourceId": Required[str]
key "failureReason": str
- key "isLargeVolume": bool
key "label": str
- key "provisioningState": str
+ key "provisioningState": Union[str, NetAppProvisioningState]
key "size": int
- key "snapshotCreationDate": Optional[str]
- key "snapshotName": str
- key "useExistingSnapshot": bool
- key "volumeResourceId": Required[str]
- backup_id: str
- backup_policy_resource_id: str
- backup_type: Union[str, BackupType]
+ key "snapshotCreationDate": str
+ key "snapshotUsage": Union[str, SnapshotUsage]
+ key "volumeSize": Union[str, VolumeSize]
+ backup_type: Union[str, ElasticBackupType]
completion_date: str
creation_date: str
+ elastic_backup_policy_resource_id: str
+ elastic_snapshot_resource_id: str
+ elastic_volume_resource_id: str
failure_reason: str
- is_large_volume: bool
label: str
- provisioning_state: str
+ provisioning_state: Union[str, NetAppProvisioningState]
size: int
snapshot_creation_date: str
- snapshot_name: str
- use_existing_snapshot: bool
- volume_resource_id: str
-
-
- class azure.mgmt.netapp.types.BackupRestoreFiles(TypedDict, total=False):
- key "destinationVolumeId": Required[str]
- key "fileList": Required[list[str]]
- key "restoreFilePath": str
- destination_volume_id: str
- file_list: list[str]
- restore_file_path: str
+ snapshot_usage: Union[str, SnapshotUsage]
+ volume_size: Union[str, VolumeSize]
- class azure.mgmt.netapp.types.BackupVault(TrackedResource):
+ class azure.mgmt.netapp.types.ElasticBackupVault(TrackedResource):
+ key "eTag": str
key "id": str
key "location": Required[str]
key "name": str
- key "properties": ForwardRef('BackupVaultProperties', module='types')
+ key "properties": ForwardRef('ElasticBackupVaultProperties', module='types')
key "systemData": ForwardRef('SystemData', module='types')
key "type": str
+ e_tag: str
id: str
location: str
name: str
- properties: BackupVaultProperties
+ properties: ElasticBackupVaultProperties
system_data: SystemData
tags: dict[str, str]
type: str
- class azure.mgmt.netapp.types.BackupVaultPatch(TypedDict, total=False):
- tags: dict[str, str]
-
-
- class azure.mgmt.netapp.types.BackupVaultProperties(TypedDict, total=False):
- key "provisioningState": str
- provisioning_state: str
-
-
- class azure.mgmt.netapp.types.BackupsMigrationRequest(TypedDict, total=False):
- key "backupVaultId": Required[str]
- backup_vault_id: str
-
-
- class azure.mgmt.netapp.types.BreakFileLocksRequest(TypedDict, total=False):
- key "clientIp": str
- key "confirmRunningDisruptiveOperation": bool
- client_ip: str
- confirm_running_disruptive_operation: bool
+ class azure.mgmt.netapp.types.ElasticBackupVaultProperties(TypedDict, total=False):
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ provisioning_state: Union[str, NetAppProvisioningState]
- class azure.mgmt.netapp.types.BreakReplicationRequest(TypedDict, total=False):
- key "forceBreakReplication": bool
- force_break_replication: bool
+ class azure.mgmt.netapp.types.ElasticBackupVaultUpdate(TypedDict, total=False):
+ tags: dict[str, str]
- class azure.mgmt.netapp.types.Bucket(ProxyResource):
+ class azure.mgmt.netapp.types.ElasticCapacityPool(TrackedResource):
+ key "eTag": str
key "id": str
+ key "location": Required[str]
key "name": str
- key "properties": ForwardRef('BucketProperties', module='types')
+ key "properties": ForwardRef('ElasticCapacityPoolProperties', module='types')
key "systemData": ForwardRef('SystemData', module='types')
key "type": str
+ e_tag: str
id: str
+ location: str
name: str
- properties: BucketProperties
+ properties: ElasticCapacityPoolProperties
system_data: SystemData
+ tags: dict[str, str]
type: str
+ zones: list[str]
- class azure.mgmt.netapp.types.BucketCredentialsExpiry(TypedDict, total=False):
- key "keyPairExpiryDays": int
- key_pair_expiry_days: int
+ class azure.mgmt.netapp.types.ElasticCapacityPoolProperties(TypedDict, total=False):
+ key "activeDirectoryConfigResourceId": str
+ key "availabilityStatus": Union[str, ElasticResourceAvailabilityStatus]
+ key "currentZone": str
+ key "encryption": ForwardRef('ElasticEncryptionConfiguration', module='types')
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ key "serviceLevel": Required[Union[str, ElasticServiceLevel]]
+ key "size": Required[int]
+ key "subnetResourceId": Required[str]
+ key "totalThroughputMibps": float
+ active_directory_config_resource_id: str
+ availability_status: Union[str, ElasticResourceAvailabilityStatus]
+ current_zone: str
+ encryption: ElasticEncryptionConfiguration
+ provisioning_state: Union[str, NetAppProvisioningState]
+ service_level: Union[str, ElasticServiceLevel]
+ size: int
+ subnet_resource_id: str
+ total_throughput_mibps: float
- class azure.mgmt.netapp.types.BucketPatch(ProxyResource):
- key "id": str
- key "name": str
- key "properties": ForwardRef('BucketPatchProperties', module='types')
- key "systemData": ForwardRef('SystemData', module='types')
- key "type": str
- id: str
- name: str
- properties: BucketPatchProperties
- system_data: SystemData
- type: str
+ class azure.mgmt.netapp.types.ElasticCapacityPoolUpdate(TypedDict, total=False):
+ key "properties": ForwardRef('ElasticCapacityPoolUpdateProperties', module='types')
+ properties: ElasticCapacityPoolUpdateProperties
+ tags: dict[str, str]
- class azure.mgmt.netapp.types.BucketPatchProperties(TypedDict, total=False):
- key "akvDetails": ForwardRef('AzureKeyVaultDetails', module='types')
- key "fileSystemUser": ForwardRef('FileSystemUser', module='types')
- key "permissions": Union[str, BucketPatchPermissions]
- key "provisioningState": Union[str, NetAppProvisioningState]
- key "server": ForwardRef('BucketServerPatchProperties', module='types')
- akv_details: AzureKeyVaultDetails
- file_system_user: FileSystemUser
- permissions: Union[str, BucketPatchPermissions]
- provisioning_state: Union[str, NetAppProvisioningState]
- server: BucketServerPatchProperties
+ class azure.mgmt.netapp.types.ElasticCapacityPoolUpdateProperties(TypedDict, total=False):
+ key "activeDirectoryConfigResourceId": str
+ key "encryption": ForwardRef('ElasticEncryptionConfiguration', module='types')
+ key "size": int
+ active_directory_config_resource_id: str
+ encryption: ElasticEncryptionConfiguration
+ size: int
- class azure.mgmt.netapp.types.BucketProperties(TypedDict, total=False):
- key "akvDetails": ForwardRef('AzureKeyVaultDetails', module='types')
- key "fileSystemUser": ForwardRef('FileSystemUser', module='types')
- key "path": str
- key "permissions": Union[str, BucketPermissions]
- key "provisioningState": Union[str, NetAppProvisioningState]
- key "server": ForwardRef('BucketServerProperties', module='types')
- key "status": Union[str, CredentialsStatus]
- akv_details: AzureKeyVaultDetails
- file_system_user: FileSystemUser
- path: str
- permissions: Union[str, BucketPermissions]
- provisioning_state: Union[str, NetAppProvisioningState]
- server: BucketServerProperties
- status: Union[str, CredentialsStatus]
+ class azure.mgmt.netapp.types.ElasticEncryption(TypedDict, total=False):
+ key "identity": ForwardRef('ElasticEncryptionIdentity', module='types')
+ key "keySource": Union[str, KeySource]
+ key "keyVaultProperties": ForwardRef('ElasticKeyVaultProperties', module='types')
+ identity: ElasticEncryptionIdentity
+ key_source: Union[str, KeySource]
+ key_vault_properties: ElasticKeyVaultProperties
- class azure.mgmt.netapp.types.BucketServerPatchProperties(TypedDict, total=False):
- key "certificateObject": str
- key "fqdn": str
- key "onCertificateConflictAction": Union[str, OnCertificateConflictAction]
- certificate_object: str
- fqdn: str
- on_certificate_conflict_action: Union[str, OnCertificateConflictAction]
+ class azure.mgmt.netapp.types.ElasticEncryptionConfiguration(TypedDict, total=False):
+ key "elasticPoolEncryptionKeySource": Required[Union[str, ElasticPoolEncryptionKeySource]]
+ key "keyVaultPrivateEndpointResourceId": Required[str]
+ elastic_pool_encryption_key_source: Union[str, ElasticPoolEncryptionKeySource]
+ key_vault_private_endpoint_resource_id: str
- class azure.mgmt.netapp.types.BucketServerProperties(TypedDict, total=False):
- key "certificateCommonName": str
- key "certificateExpiryDate": str
- key "certificateObject": str
- key "fqdn": str
+ class azure.mgmt.netapp.types.ElasticEncryptionIdentity(TypedDict, total=False):
+ key "federatedClientId": str
+ key "principalId": str
+ key "userAssignedIdentity": str
+ federated_client_id: str
+ principal_id: str
+ user_assigned_identity: str
+
+
+ class azure.mgmt.netapp.types.ElasticExportPolicy(TypedDict, total=False):
+ rules: list[ElasticExportPolicyRule]
+
+
+ class azure.mgmt.netapp.types.ElasticExportPolicyRule(TypedDict, total=False):
+ key "nfsv3": Union[str, ElasticNfsv3Access]
+ key "nfsv4": Union[str, ElasticNfsv4Access]
+ key "rootAccess": Union[str, ElasticRootAccess]
+ key "ruleIndex": int
+ key "unixAccessRule": Union[str, ElasticUnixAccessRule]
+ allowedClients: list[str]
+ allowed_clients: list[str]
+ nfsv3: Union[str, ElasticNfsv3Access]
+ nfsv4: Union[str, ElasticNfsv4Access]
+ root_access: Union[str, ElasticRootAccess]
+ rule_index: int
+ unix_access_rule: Union[str, ElasticUnixAccessRule]
+
+
+ class azure.mgmt.netapp.types.ElasticKeyVaultProperties(TypedDict, total=False):
+ key "keyName": str
+ key "keyVaultResourceId": str
+ key "keyVaultUri": str
+ key "status": Union[str, ElasticKeyVaultStatus]
+ key_name: str
+ key_vault_resource_id: str
+ key_vault_uri: str
+ status: Union[str, ElasticKeyVaultStatus]
+
+
+ class azure.mgmt.netapp.types.ElasticMountTargetProperties(TypedDict, total=False):
key "ipAddress": str
- key "onCertificateConflictAction": Union[str, OnCertificateConflictAction]
- certificate_common_name: str
- certificate_expiry_date: str
- certificate_object: str
- fqdn: str
+ key "smbServerFqdn": str
ip_address: str
- on_certificate_conflict_action: Union[str, OnCertificateConflictAction]
+ smb_server_fqdn: str
+
+
+ class azure.mgmt.netapp.types.ElasticSmbPatchProperties(TypedDict, total=False):
+ key "smbEncryption": Union[str, ElasticSmbEncryption]
+ smb_encryption: Union[str, ElasticSmbEncryption]
+
+
+ class azure.mgmt.netapp.types.ElasticSmbProperties(TypedDict, total=False):
+ key "smbEncryption": Union[str, ElasticSmbEncryption]
+ smb_encryption: Union[str, ElasticSmbEncryption]
+
+
+ class azure.mgmt.netapp.types.ElasticSnapshot(ProxyResource):
+ key "id": str
+ key "name": str
+ key "properties": ForwardRef('ElasticSnapshotProperties', module='types')
+ key "systemData": ForwardRef('SystemData', module='types')
+ key "type": str
+ id: str
+ name: str
+ properties: ElasticSnapshotProperties
+ system_data: SystemData
+ type: str
- class azure.mgmt.netapp.types.Cache(TrackedResource):
- key "etag": str
+ class azure.mgmt.netapp.types.ElasticSnapshotPolicy(TrackedResource):
+ key "eTag": str
key "id": str
key "location": Required[str]
key "name": str
- key "properties": Required[CacheProperties]
+ key "properties": ForwardRef('ElasticSnapshotPolicyProperties', module='types')
key "systemData": ForwardRef('SystemData', module='types')
key "type": str
- etag: str
+ e_tag: str
id: str
location: str
name: str
- properties: CacheProperties
+ properties: ElasticSnapshotPolicyProperties
system_data: SystemData
tags: dict[str, str]
type: str
- zones: list[str]
- class azure.mgmt.netapp.types.CacheMountTargetProperties(TypedDict, total=False):
- key "ipAddress": str
- key "mountTargetId": str
- key "smbServerFqdn": str
- ip_address: str
- mount_target_id: str
- smb_server_fqdn: str
+ class azure.mgmt.netapp.types.ElasticSnapshotPolicyDailySchedule(TypedDict, total=False):
+ key "hour": int
+ key "minute": int
+ key "snapshotsToKeep": int
+ hour: int
+ minute: int
+ snapshots_to_keep: int
- class azure.mgmt.netapp.types.CacheProperties(TypedDict, total=False):
- key "actualThroughputMibps": float
- key "cacheState": Union[str, CacheLifeCycleState]
- key "cacheSubnetResourceId": Required[str]
- key "cifsChangeNotifications": Union[str, CifsChangeNotifyState]
- key "encryption": Union[str, EncryptionState]
- key "encryptionKeySource": Required[Union[str, EncryptionKeySource]]
- key "exportPolicy": ForwardRef('CachePropertiesExportPolicy', module='types')
- key "fileAccessLogs": Union[str, CacheFileAccessLogs]
- key "filePath": Required[str]
- key "globalFileLocking": Union[str, GlobalFileLockingState]
- key "kerberos": Union[str, KerberosState]
- key "keyVaultPrivateEndpointResourceId": str
- key "language": Union[str, VolumeLanguage]
- key "ldap": Union[str, LdapState]
- key "ldapServerType": Union[str, LdapServerType]
- key "maximumNumberOfFiles": int
- key "originClusterInformation": Required[OriginClusterInformation]
- key "peeringSubnetResourceId": Required[str]
- key "provisioningState": Union[str, CacheProvisioningState]
- key "size": Required[int]
- key "smbSettings": ForwardRef('SmbSettings', module='types')
- key "throughputMibps": float
- key "writeBack": Union[str, EnableWriteBackState]
- actual_throughput_mibps: float
- cache_state: Union[str, CacheLifeCycleState]
- cache_subnet_resource_id: str
- cifs_change_notifications: Union[str, CifsChangeNotifyState]
- encryption: Union[str, EncryptionState]
- encryption_key_source: Union[str, EncryptionKeySource]
- export_policy: CachePropertiesExportPolicy
- file_access_logs: Union[str, CacheFileAccessLogs]
- file_path: str
- global_file_locking: Union[str, GlobalFileLockingState]
- kerberos: Union[str, KerberosState]
- key_vault_private_endpoint_resource_id: str
- language: Union[str, VolumeLanguage]
- ldap: Union[str, LdapState]
- ldap_server_type: Union[str, LdapServerType]
- maximum_number_of_files: int
- mountTargets: list[CacheMountTargetProperties]
- mount_targets: list[CacheMountTargetProperties]
- origin_cluster_information: OriginClusterInformation
- peering_subnet_resource_id: str
- protocolTypes: list[Union[str, ProtocolTypes]]
- protocol_types: list[Union[str, ProtocolTypes]]
- provisioning_state: Union[str, CacheProvisioningState]
- size: int
- smb_settings: SmbSettings
- throughput_mibps: float
- write_back: Union[str, EnableWriteBackState]
+ class azure.mgmt.netapp.types.ElasticSnapshotPolicyHourlySchedule(TypedDict, total=False):
+ key "minute": int
+ key "snapshotsToKeep": int
+ minute: int
+ snapshots_to_keep: int
- class azure.mgmt.netapp.types.CachePropertiesExportPolicy(TypedDict, total=False):
- rules: list[ExportPolicyRule]
+ class azure.mgmt.netapp.types.ElasticSnapshotPolicyMonthlySchedule(TypedDict, total=False):
+ key "hour": int
+ key "minute": int
+ key "snapshotsToKeep": int
+ daysOfMonth: list[int]
+ days_of_month: list[int]
+ hour: int
+ minute: int
+ snapshots_to_keep: int
- class azure.mgmt.netapp.types.CacheUpdate(TypedDict, total=False):
- key "properties": ForwardRef('CacheUpdateProperties', module='types')
- properties: CacheUpdateProperties
+ class azure.mgmt.netapp.types.ElasticSnapshotPolicyProperties(TypedDict, total=False):
+ key "dailySchedule": ForwardRef('ElasticSnapshotPolicyDailySchedule', module='types')
+ key "hourlySchedule": ForwardRef('ElasticSnapshotPolicyHourlySchedule', module='types')
+ key "monthlySchedule": ForwardRef('ElasticSnapshotPolicyMonthlySchedule', module='types')
+ key "policyStatus": Union[str, PolicyStatus]
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ key "weeklySchedule": ForwardRef('ElasticSnapshotPolicyWeeklySchedule', module='types')
+ daily_schedule: ElasticSnapshotPolicyDailySchedule
+ hourly_schedule: ElasticSnapshotPolicyHourlySchedule
+ monthly_schedule: ElasticSnapshotPolicyMonthlySchedule
+ policy_status: Union[str, PolicyStatus]
+ provisioning_state: Union[str, NetAppProvisioningState]
+ weekly_schedule: ElasticSnapshotPolicyWeeklySchedule
+
+
+ class azure.mgmt.netapp.types.ElasticSnapshotPolicyUpdate(TypedDict, total=False):
+ key "properties": ForwardRef('ElasticSnapshotPolicyUpdateProperties', module='types')
+ properties: ElasticSnapshotPolicyUpdateProperties
tags: dict[str, str]
- class azure.mgmt.netapp.types.CacheUpdateProperties(TypedDict, total=False):
- key "cifsChangeNotifications": Union[str, CifsChangeNotifyState]
- key "exportPolicy": ForwardRef('CachePropertiesExportPolicy', module='types')
- key "keyVaultPrivateEndpointResourceId": str
- key "size": int
- key "smbSettings": ForwardRef('SmbSettings', module='types')
- key "throughputMibps": float
- key "writeBack": Union[str, EnableWriteBackState]
- cifs_change_notifications: Union[str, CifsChangeNotifyState]
- export_policy: CachePropertiesExportPolicy
- key_vault_private_endpoint_resource_id: str
- protocolTypes: list[Union[str, ProtocolTypes]]
- protocol_types: list[Union[str, ProtocolTypes]]
- size: int
- smb_settings: SmbSettings
- throughput_mibps: float
- write_back: Union[str, EnableWriteBackState]
+ class azure.mgmt.netapp.types.ElasticSnapshotPolicyUpdateProperties(TypedDict, total=False):
+ key "dailySchedule": ForwardRef('ElasticSnapshotPolicyDailySchedule', module='types')
+ key "hourlySchedule": ForwardRef('ElasticSnapshotPolicyHourlySchedule', module='types')
+ key "monthlySchedule": ForwardRef('ElasticSnapshotPolicyMonthlySchedule', module='types')
+ key "policyStatus": Union[str, PolicyStatus]
+ key "weeklySchedule": ForwardRef('ElasticSnapshotPolicyWeeklySchedule', module='types')
+ daily_schedule: ElasticSnapshotPolicyDailySchedule
+ hourly_schedule: ElasticSnapshotPolicyHourlySchedule
+ monthly_schedule: ElasticSnapshotPolicyMonthlySchedule
+ policy_status: Union[str, PolicyStatus]
+ weekly_schedule: ElasticSnapshotPolicyWeeklySchedule
- class azure.mgmt.netapp.types.CapacityPool(TrackedResource):
- key "etag": str
+ class azure.mgmt.netapp.types.ElasticSnapshotPolicyWeeklySchedule(TypedDict, total=False):
+ key "hour": int
+ key "minute": int
+ key "snapshotsToKeep": int
+ days: list[Union[str, DayOfWeek]]
+ hour: int
+ minute: int
+ snapshots_to_keep: int
+
+
+ class azure.mgmt.netapp.types.ElasticSnapshotProperties(TypedDict, total=False):
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ provisioning_state: Union[str, NetAppProvisioningState]
+
+
+ class azure.mgmt.netapp.types.ElasticVolume(TrackedResource):
+ key "eTag": str
key "id": str
key "location": Required[str]
key "name": str
- key "properties": Required[PoolProperties]
+ key "properties": ForwardRef('ElasticVolumeProperties', module='types')
key "systemData": ForwardRef('SystemData', module='types')
key "type": str
- etag: str
+ e_tag: str
id: str
location: str
name: str
- properties: PoolProperties
+ properties: ElasticVolumeProperties
system_data: SystemData
tags: dict[str, str]
type: str
+ zones: list[str]
- class azure.mgmt.netapp.types.CapacityPoolPatch(TypedDict, total=False):
- key "id": str
- key "location": str
- key "name": str
- key "properties": ForwardRef('PoolPatchProperties', module='types')
- key "type": str
- id: str
- location: str
- name: str
- properties: PoolPatchProperties
- tags: dict[str, str]
- type: str
+ class azure.mgmt.netapp.types.ElasticVolumeBackupProperties(TypedDict, total=False):
+ key "elasticBackupPolicyResourceId": str
+ key "elasticBackupVaultResourceId": str
+ key "policyEnforcement": Union[str, ElasticVolumePolicyEnforcement]
+ elastic_backup_policy_resource_id: str
+ elastic_backup_vault_resource_id: str
+ policy_enforcement: Union[str, ElasticVolumePolicyEnforcement]
- class azure.mgmt.netapp.types.CertificateAkvDetails(TypedDict, total=False):
- key "certificateKeyVaultUri": str
- key "certificateName": str
- certificate_key_vault_uri: str
- certificate_name: str
+ class azure.mgmt.netapp.types.ElasticVolumeDataProtectionPatchProperties(TypedDict, total=False):
+ key "backup": ForwardRef('ElasticVolumeBackupProperties', module='types')
+ key "snapshot": ForwardRef('ElasticVolumeSnapshotProperties', module='types')
+ backup: ElasticVolumeBackupProperties
+ snapshot: ElasticVolumeSnapshotProperties
- class azure.mgmt.netapp.types.ChangeKeyVault(TypedDict, total=False):
- key "keyName": Required[str]
- key "keyVaultPrivateEndpoints": Required[list[KeyVaultPrivateEndpoint]]
- key "keyVaultResourceId": str
- key "keyVaultUri": Required[str]
- key_name: str
- key_vault_private_endpoints: list[KeyVaultPrivateEndpoint]
- key_vault_resource_id: str
- key_vault_uri: str
+ class azure.mgmt.netapp.types.ElasticVolumeDataProtectionProperties(TypedDict, total=False):
+ key "backup": ForwardRef('ElasticVolumeBackupProperties', module='types')
+ key "snapshot": ForwardRef('ElasticVolumeSnapshotProperties', module='types')
+ backup: ElasticVolumeBackupProperties
+ snapshot: ElasticVolumeSnapshotProperties
- class azure.mgmt.netapp.types.CifsUser(TypedDict, total=False):
- key "username": str
- username: str
+ class azure.mgmt.netapp.types.ElasticVolumeProperties(TypedDict, total=False):
+ key "availabilityStatus": Union[str, ElasticResourceAvailabilityStatus]
+ key "backupResourceId": str
+ key "dataProtection": ForwardRef('ElasticVolumeDataProtectionProperties', module='types')
+ key "exportPolicy": ForwardRef('ElasticExportPolicy', module='types')
+ key "filePath": Required[str]
+ key "protocolTypes": Required[list[Union[str, ElasticProtocolType]]]
+ key "provisioningState": Union[str, NetAppProvisioningState]
+ key "restorationState": Union[str, ElasticVolumeRestorationState]
+ key "size": Required[int]
+ key "smbProperties": ForwardRef('ElasticSmbProperties', module='types')
+ key "snapshotDirectoryVisibility": Union[str, SnapshotDirectoryVisibility]
+ key "snapshotResourceId": str
+ availability_status: Union[str, ElasticResourceAvailabilityStatus]
+ backup_resource_id: str
+ data_protection: ElasticVolumeDataProtectionProperties
+ export_policy: ElasticExportPolicy
+ file_path: str
+ mountTargets: list[ElasticMountTargetProperties]
+ mount_targets: list[ElasticMountTargetProperties]
+ protocol_types: list[Union[str, ElasticProtocolType]]
+ provisioning_state: Union[str, NetAppProvisioningState]
+ restoration_state: Union[str, ElasticVolumeRestorationState]
+ size: int
+ smb_properties: ElasticSmbProperties
+ snapshot_directory_visibility: Union[str, SnapshotDirectoryVisibility]
+ snapshot_resource_id: str
- class azure.mgmt.netapp.types.CredentialsAkvDetails(TypedDict, total=False):
- key "credentialsKeyVaultUri": str
- key "secretName": str
- credentials_key_vault_uri: str
- secret_name: str
+ class azure.mgmt.netapp.types.ElasticVolumeRevert(TypedDict, total=False):
+ key "snapshotResourceId": str
+ snapshot_resource_id: str
- class azure.mgmt.netapp.types.DailySchedule(TypedDict, total=False):
- key "hour": int
- key "minute": int
- key "snapshotsToKeep": int
- key "usedBytes": int
- hour: int
- minute: int
- snapshots_to_keep: int
- used_bytes: int
+ class azure.mgmt.netapp.types.ElasticVolumeSnapshotProperties(TypedDict, total=False):
+ key "snapshotPolicyResourceId": str
+ snapshot_policy_resource_id: str
- class azure.mgmt.netapp.types.DestinationReplication(TypedDict, total=False):
- key "region": str
- key "replicationType": Union[str, ReplicationType]
- key "resourceId": str
- key "zone": str
- region: str
- replication_type: Union[str, ReplicationType]
- resource_id: str
- zone: str
+ class azure.mgmt.netapp.types.ElasticVolumeUpdate(TypedDict, total=False):
+ key "properties": ForwardRef('ElasticVolumeUpdateProperties', module='types')
+ properties: ElasticVolumeUpdateProperties
+ tags: dict[str, str]
+
+
+ class azure.mgmt.netapp.types.ElasticVolumeUpdateProperties(TypedDict, total=False):
+ key "dataProtection": ForwardRef('ElasticVolumeDataProtectionPatchProperties', module='types')
+ key "exportPolicy": ForwardRef('ElasticExportPolicy', module='types')
+ key "size": int
+ key "smbProperties": ForwardRef('ElasticSmbPatchProperties', module='types')
+ key "snapshotDirectoryVisibility": Union[str, SnapshotDirectoryVisibility]
+ data_protection: ElasticVolumeDataProtectionPatchProperties
+ export_policy: ElasticExportPolicy
+ size: int
+ smb_properties: ElasticSmbPatchProperties
+ snapshot_directory_visibility: Union[str, SnapshotDirectoryVisibility]
class azure.mgmt.netapp.types.EncryptionIdentity(TypedDict, total=False):
@@ -9914,6 +14124,46 @@ namespace azure.mgmt.netapp.types
virtual_network_id: str
+ class azure.mgmt.netapp.types.EntraIdAkvConfig(TypedDict, total=False):
+ key "azureKeyVaultUri": Required[str]
+ key "certificateName": Required[str]
+ key "userAssignedIdentity": str
+ azure_key_vault_uri: str
+ certificate_name: str
+ user_assigned_identity: str
+
+
+ class azure.mgmt.netapp.types.EntraIdAkvConfigPatch(TypedDict, total=False):
+ key "azureKeyVaultUri": str
+ key "certificateName": str
+ key "userAssignedIdentity": str
+ azure_key_vault_uri: str
+ certificate_name: str
+ user_assigned_identity: str
+
+
+ class azure.mgmt.netapp.types.EntraIdConfig(TypedDict, total=False):
+ key "applicationId": Required[str]
+ key "domain": Required[str]
+ key "entraIdAkvConfig": ForwardRef('EntraIdAkvConfig', module='types')
+ key "serverNamePrefix": Required[str]
+ application_id: str
+ domain: str
+ entra_id_akv_config: EntraIdAkvConfig
+ server_name_prefix: str
+
+
+ class azure.mgmt.netapp.types.EntraIdConfigPatch(TypedDict, total=False):
+ key "applicationId": str
+ key "domain": str
+ key "entraIdAkvConfig": ForwardRef('EntraIdAkvConfigPatch', module='types')
+ key "serverNamePrefix": str
+ application_id: str
+ domain: str
+ entra_id_akv_config: EntraIdAkvConfigPatch
+ server_name_prefix: str
+
+
class azure.mgmt.netapp.types.ExportPolicyRule(TypedDict, total=False):
key "allowedClients": str
key "chownMode": Union[str, ChownMode]
@@ -9997,6 +14247,64 @@ namespace azure.mgmt.netapp.types
status: Union[str, KeyVaultStatus]
+ class azure.mgmt.netapp.types.LdapConfiguration(TypedDict, total=False):
+ key "bindAuthenticationLevel": Union[str, BindAuthenticationLevel]
+ key "bindDN": str
+ key "bindPasswordAkvConfig": ForwardRef('BindPasswordAkvConfig', module='types')
+ key "certificateCNHost": Optional[str]
+ key "domain": str
+ key "groupDN": str
+ key "ldapOverTLS": bool
+ key "ldapPort": int
+ key "netGroupDN": str
+ key "serverCACertificate": str
+ key "userDN": str
+ bind_authentication_level: Union[str, BindAuthenticationLevel]
+ bind_dn: str
+ bind_password_akv_config: BindPasswordAkvConfig
+ certificate_cn_host: str
+ dnsServers: list[str]
+ dns_servers: list[str]
+ domain: str
+ group_dn: str
+ ldapServers: list[str]
+ ldap_over_tls: bool
+ ldap_port: int
+ ldap_servers: list[str]
+ net_group_dn: str
+ server_ca_certificate: str
+ user_dn: str
+
+
+ class azure.mgmt.netapp.types.LdapConfigurationPatch(TypedDict, total=False):
+ key "bindAuthenticationLevel": Union[str, BindAuthenticationLevel]
+ key "bindDN": str
+ key "bindPasswordAkvConfig": ForwardRef('BindPasswordAkvConfigPatch', module='types')
+ key "certificateCNHost": Optional[str]
+ key "domain": str
+ key "groupDN": str
+ key "ldapOverTLS": bool
+ key "ldapPort": int
+ key "netGroupDN": str
+ key "serverCACertificate": str
+ key "userDN": str
+ bind_authentication_level: Union[str, BindAuthenticationLevel]
+ bind_dn: str
+ bind_password_akv_config: BindPasswordAkvConfigPatch
+ certificate_cn_host: str
+ dnsServers: list[str]
+ dns_servers: list[str]
+ domain: str
+ group_dn: str
+ ldapServers: list[str]
+ ldap_over_tls: bool
+ ldap_port: int
+ ldap_servers: list[str]
+ net_group_dn: str
+ server_ca_certificate: str
+ user_dn: str
+
+
class azure.mgmt.netapp.types.LdapSearchScopeOpt(TypedDict, total=False):
key "groupDN": str
key "groupMembershipFilter": str
@@ -10067,19 +14375,11 @@ namespace azure.mgmt.netapp.types
class azure.mgmt.netapp.types.NetAppAccountPatch(TypedDict, total=False):
- key "id": str
key "identity": ForwardRef('ManagedServiceIdentity', module='types')
- key "location": str
- key "name": str
- key "properties": ForwardRef('AccountProperties', module='types')
- key "type": str
- id: str
+ key "properties": ForwardRef('AccountPropertiesPatch', module='types')
identity: ManagedServiceIdentity
- location: str
- name: str
- properties: AccountProperties
+ properties: AccountPropertiesPatch
tags: dict[str, str]
- type: str
class azure.mgmt.netapp.types.NfsUser(TypedDict, total=False):
@@ -10270,6 +14570,27 @@ namespace azure.mgmt.netapp.types
type: Union[str, CheckNameResourceTypes]
+ class azure.mgmt.netapp.types.SecretPassword(TypedDict, total=False):
+ key "identity": ForwardRef('SecretPasswordIdentity', module='types')
+ key "keyVaultProperties": ForwardRef('SecretPasswordKeyVaultProperties', module='types')
+ identity: SecretPasswordIdentity
+ key_vault_properties: SecretPasswordKeyVaultProperties
+
+
+ class azure.mgmt.netapp.types.SecretPasswordIdentity(TypedDict, total=False):
+ key "principalId": str
+ key "userAssignedIdentity": str
+ principal_id: str
+ user_assigned_identity: str
+
+
+ class azure.mgmt.netapp.types.SecretPasswordKeyVaultProperties(TypedDict, total=False):
+ key "keyVaultUri": Required[str]
+ key "secretName": Required[str]
+ key_vault_uri: str
+ secret_name: str
+
+
class azure.mgmt.netapp.types.SmbSettings(TypedDict, total=False):
key "smbAccessBasedEnumeration": Union[str, SmbAccessBasedEnumeration]
key "smbEncryption": Union[str, SmbEncryptionState]
@@ -10626,7 +14947,10 @@ namespace azure.mgmt.netapp.types
key "isRestoring": bool
key "kerberosEnabled": bool
key "keyVaultPrivateEndpointResourceId": str
+ key "language": Union[str, VolumeLanguage]
+ key "largeVolumeType": Union[str, LargeVolumeType]
key "ldapEnabled": bool
+ key "ldapServerType": Union[str, LdapServerType]
key "maximumNumberOfFiles": int
key "networkFeatures": Union[str, NetworkFeatures]
key "networkSiblingSetId": str
@@ -10683,7 +15007,10 @@ namespace azure.mgmt.netapp.types
is_restoring: bool
kerberos_enabled: bool
key_vault_private_endpoint_resource_id: str
+ language: Union[str, VolumeLanguage]
+ large_volume_type: Union[str, LargeVolumeType]
ldap_enabled: bool
+ ldap_server_type: Union[str, LdapServerType]
maximum_number_of_files: int
mountTargets: list[MountTargetProperties]
mount_targets: list[MountTargetProperties]
diff --git a/sdk/netapp/azure-mgmt-netapp/api.metadata.yml b/sdk/netapp/azure-mgmt-netapp/api.metadata.yml
index 33525f362451..73977717e59d 100644
--- a/sdk/netapp/azure-mgmt-netapp/api.metadata.yml
+++ b/sdk/netapp/azure-mgmt-netapp/api.metadata.yml
@@ -1,3 +1,3 @@
-apiMdSha256: ce2378d348c8827a6a162c9346fdba06a40a6651ad4f951012137505b0d5d291
+apiMdSha256: 3fb4e22baa57b69b16f22e83f746e31476c798bc9843cfe637eb1be8ff4405d5
parserVersion: 0.3.30
pythonVersion: 3.13.14
diff --git a/sdk/netapp/azure-mgmt-netapp/apiview-properties.json b/sdk/netapp/azure-mgmt-netapp/apiview-properties.json
index 55a09a81d981..02e4350c5bfa 100644
--- a/sdk/netapp/azure-mgmt-netapp/apiview-properties.json
+++ b/sdk/netapp/azure-mgmt-netapp/apiview-properties.json
@@ -3,15 +3,20 @@
"CrossLanguageDefinitionId": {
"azure.mgmt.netapp.models.AccountEncryption": "Microsoft.NetApp.AccountEncryption",
"azure.mgmt.netapp.models.AccountProperties": "Microsoft.NetApp.AccountProperties",
+ "azure.mgmt.netapp.models.AccountPropertiesPatch": "Microsoft.NetApp.AccountPropertiesPatch",
"azure.mgmt.netapp.models.ActiveDirectory": "Microsoft.NetApp.ActiveDirectory",
+ "azure.mgmt.netapp.models.Resource": "Azure.ResourceManager.CommonTypes.Resource",
+ "azure.mgmt.netapp.models.TrackedResource": "Azure.ResourceManager.CommonTypes.TrackedResource",
+ "azure.mgmt.netapp.models.ActiveDirectoryConfig": "Microsoft.NetApp.ActiveDirectoryConfig",
+ "azure.mgmt.netapp.models.ActiveDirectoryConfigProperties": "Microsoft.NetApp.ActiveDirectoryConfigProperties",
+ "azure.mgmt.netapp.models.ActiveDirectoryConfigUpdate": "Azure.ResourceManager.Foundations.ResourceUpdateModel",
+ "azure.mgmt.netapp.models.ActiveDirectoryConfigUpdateProperties": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties",
"azure.mgmt.netapp.models.AuthorizeRequest": "Microsoft.NetApp.AuthorizeRequest",
"azure.mgmt.netapp.models.AzureKeyVaultDetails": "Microsoft.NetApp.AzureKeyVaultDetails",
- "azure.mgmt.netapp.models.Resource": "Azure.ResourceManager.CommonTypes.Resource",
"azure.mgmt.netapp.models.ProxyResource": "Azure.ResourceManager.CommonTypes.ProxyResource",
"azure.mgmt.netapp.models.Backup": "Microsoft.NetApp.Backup",
"azure.mgmt.netapp.models.BackupPatch": "Microsoft.NetApp.BackupPatch",
"azure.mgmt.netapp.models.BackupPatchProperties": "Microsoft.NetApp.BackupPatchProperties",
- "azure.mgmt.netapp.models.TrackedResource": "Azure.ResourceManager.CommonTypes.TrackedResource",
"azure.mgmt.netapp.models.BackupPolicy": "Microsoft.NetApp.BackupPolicy",
"azure.mgmt.netapp.models.BackupPolicyPatch": "Microsoft.NetApp.BackupPolicyPatch",
"azure.mgmt.netapp.models.BackupPolicyProperties": "Microsoft.NetApp.BackupPolicyProperties",
@@ -22,6 +27,8 @@
"azure.mgmt.netapp.models.BackupVault": "Microsoft.NetApp.BackupVault",
"azure.mgmt.netapp.models.BackupVaultPatch": "Microsoft.NetApp.BackupVaultPatch",
"azure.mgmt.netapp.models.BackupVaultProperties": "Microsoft.NetApp.BackupVaultProperties",
+ "azure.mgmt.netapp.models.BindPasswordAkvConfig": "Microsoft.NetApp.BindPasswordAkvConfig",
+ "azure.mgmt.netapp.models.BindPasswordAkvConfigPatch": "Microsoft.NetApp.BindPasswordAkvConfigPatch",
"azure.mgmt.netapp.models.BreakFileLocksRequest": "Microsoft.NetApp.BreakFileLocksRequest",
"azure.mgmt.netapp.models.BreakReplicationRequest": "Microsoft.NetApp.BreakReplicationRequest",
"azure.mgmt.netapp.models.Bucket": "Microsoft.NetApp.Bucket",
@@ -42,7 +49,10 @@
"azure.mgmt.netapp.models.CapacityPoolPatch": "Microsoft.NetApp.CapacityPoolPatch",
"azure.mgmt.netapp.models.CertificateAkvDetails": "Microsoft.NetApp.CertificateAkvDetails",
"azure.mgmt.netapp.models.ChangeKeyVault": "Microsoft.NetApp.ChangeKeyVault",
+ "azure.mgmt.netapp.models.ChangeZoneRequest": "Microsoft.NetApp.ChangeZoneRequest",
"azure.mgmt.netapp.models.CheckAvailabilityResponse": "Microsoft.NetApp.CheckAvailabilityResponse",
+ "azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse": "Microsoft.NetApp.CheckElasticResourceAvailabilityResponse",
+ "azure.mgmt.netapp.models.CheckElasticVolumeFilePathAvailabilityRequest": "Microsoft.NetApp.CheckElasticVolumeFilePathAvailabilityRequest",
"azure.mgmt.netapp.models.CifsUser": "Microsoft.NetApp.CifsUser",
"azure.mgmt.netapp.models.ClusterPeerCommandResponse": "Microsoft.NetApp.ClusterPeerCommandResponse",
"azure.mgmt.netapp.models.ClusterPeerCommandResponseProperties": "Microsoft.NetApp.ClusterPeerCommandResponseProperties",
@@ -50,8 +60,57 @@
"azure.mgmt.netapp.models.DailySchedule": "Microsoft.NetApp.DailySchedule",
"azure.mgmt.netapp.models.DestinationReplication": "Microsoft.NetApp.DestinationReplication",
"azure.mgmt.netapp.models.Dimension": "Microsoft.NetApp.Dimension",
+ "azure.mgmt.netapp.models.ElasticAccount": "Microsoft.NetApp.ElasticAccount",
+ "azure.mgmt.netapp.models.ElasticAccountProperties": "Microsoft.NetApp.ElasticAccountProperties",
+ "azure.mgmt.netapp.models.ElasticAccountUpdate": "Azure.ResourceManager.Foundations.ResourceUpdateModel",
+ "azure.mgmt.netapp.models.ElasticAccountUpdateProperties": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties",
+ "azure.mgmt.netapp.models.ElasticBackup": "Microsoft.NetApp.ElasticBackup",
+ "azure.mgmt.netapp.models.ElasticBackupPolicy": "Microsoft.NetApp.ElasticBackupPolicy",
+ "azure.mgmt.netapp.models.ElasticBackupPolicyProperties": "Microsoft.NetApp.ElasticBackupPolicyProperties",
+ "azure.mgmt.netapp.models.ElasticBackupPolicyUpdate": "Azure.ResourceManager.Foundations.ResourceUpdateModel",
+ "azure.mgmt.netapp.models.ElasticBackupPolicyUpdateProperties": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties",
+ "azure.mgmt.netapp.models.ElasticBackupProperties": "Microsoft.NetApp.ElasticBackupProperties",
+ "azure.mgmt.netapp.models.ElasticBackupVault": "Microsoft.NetApp.ElasticBackupVault",
+ "azure.mgmt.netapp.models.ElasticBackupVaultProperties": "Microsoft.NetApp.ElasticBackupVaultProperties",
+ "azure.mgmt.netapp.models.ElasticBackupVaultUpdate": "Azure.ResourceManager.Foundations.ResourceUpdateModel",
+ "azure.mgmt.netapp.models.ElasticCapacityPool": "Microsoft.NetApp.ElasticCapacityPool",
+ "azure.mgmt.netapp.models.ElasticCapacityPoolProperties": "Microsoft.NetApp.ElasticCapacityPoolProperties",
+ "azure.mgmt.netapp.models.ElasticCapacityPoolUpdate": "Azure.ResourceManager.Foundations.ResourceUpdateModel",
+ "azure.mgmt.netapp.models.ElasticCapacityPoolUpdateProperties": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties",
+ "azure.mgmt.netapp.models.ElasticEncryption": "Microsoft.NetApp.ElasticEncryption",
+ "azure.mgmt.netapp.models.ElasticEncryptionConfiguration": "Microsoft.NetApp.ElasticEncryptionConfiguration",
+ "azure.mgmt.netapp.models.ElasticEncryptionIdentity": "Microsoft.NetApp.ElasticEncryptionIdentity",
+ "azure.mgmt.netapp.models.ElasticExportPolicy": "Microsoft.NetApp.ElasticExportPolicy",
+ "azure.mgmt.netapp.models.ElasticExportPolicyRule": "Microsoft.NetApp.ElasticExportPolicyRule",
+ "azure.mgmt.netapp.models.ElasticKeyVaultProperties": "Microsoft.NetApp.ElasticKeyVaultProperties",
+ "azure.mgmt.netapp.models.ElasticMountTargetProperties": "Microsoft.NetApp.ElasticMountTargetProperties",
+ "azure.mgmt.netapp.models.ElasticSmbPatchProperties": "Microsoft.NetApp.ElasticSmbPatchProperties",
+ "azure.mgmt.netapp.models.ElasticSmbProperties": "Microsoft.NetApp.ElasticSmbProperties",
+ "azure.mgmt.netapp.models.ElasticSnapshot": "Microsoft.NetApp.ElasticSnapshot",
+ "azure.mgmt.netapp.models.ElasticSnapshotPolicy": "Microsoft.NetApp.ElasticSnapshotPolicy",
+ "azure.mgmt.netapp.models.ElasticSnapshotPolicyDailySchedule": "Microsoft.NetApp.ElasticSnapshotPolicyDailySchedule",
+ "azure.mgmt.netapp.models.ElasticSnapshotPolicyHourlySchedule": "Microsoft.NetApp.ElasticSnapshotPolicyHourlySchedule",
+ "azure.mgmt.netapp.models.ElasticSnapshotPolicyMonthlySchedule": "Microsoft.NetApp.ElasticSnapshotPolicyMonthlySchedule",
+ "azure.mgmt.netapp.models.ElasticSnapshotPolicyProperties": "Microsoft.NetApp.ElasticSnapshotPolicyProperties",
+ "azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdate": "Azure.ResourceManager.Foundations.ResourceUpdateModel",
+ "azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdateProperties": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties",
+ "azure.mgmt.netapp.models.ElasticSnapshotPolicyWeeklySchedule": "Microsoft.NetApp.ElasticSnapshotPolicyWeeklySchedule",
+ "azure.mgmt.netapp.models.ElasticSnapshotProperties": "Microsoft.NetApp.ElasticSnapshotProperties",
+ "azure.mgmt.netapp.models.ElasticVolume": "Microsoft.NetApp.ElasticVolume",
+ "azure.mgmt.netapp.models.ElasticVolumeBackupProperties": "Microsoft.NetApp.ElasticVolumeBackupProperties",
+ "azure.mgmt.netapp.models.ElasticVolumeDataProtectionPatchProperties": "Microsoft.NetApp.ElasticVolumeDataProtectionPatchProperties",
+ "azure.mgmt.netapp.models.ElasticVolumeDataProtectionProperties": "Microsoft.NetApp.ElasticVolumeDataProtectionProperties",
+ "azure.mgmt.netapp.models.ElasticVolumeProperties": "Microsoft.NetApp.ElasticVolumeProperties",
+ "azure.mgmt.netapp.models.ElasticVolumeRevert": "Microsoft.NetApp.ElasticVolumeRevert",
+ "azure.mgmt.netapp.models.ElasticVolumeSnapshotProperties": "Microsoft.NetApp.ElasticVolumeSnapshotProperties",
+ "azure.mgmt.netapp.models.ElasticVolumeUpdate": "Azure.ResourceManager.Foundations.ResourceUpdateModel",
+ "azure.mgmt.netapp.models.ElasticVolumeUpdateProperties": "Azure.ResourceManager.Foundations.ResourceUpdateModelProperties",
"azure.mgmt.netapp.models.EncryptionIdentity": "Microsoft.NetApp.EncryptionIdentity",
"azure.mgmt.netapp.models.EncryptionTransitionRequest": "Microsoft.NetApp.EncryptionTransitionRequest",
+ "azure.mgmt.netapp.models.EntraIdAkvConfig": "Microsoft.NetApp.EntraIdAkvConfig",
+ "azure.mgmt.netapp.models.EntraIdAkvConfigPatch": "Microsoft.NetApp.EntraIdAkvConfigPatch",
+ "azure.mgmt.netapp.models.EntraIdConfig": "Microsoft.NetApp.EntraIdConfig",
+ "azure.mgmt.netapp.models.EntraIdConfigPatch": "Microsoft.NetApp.EntraIdConfigPatch",
"azure.mgmt.netapp.models.ErrorAdditionalInfo": "Azure.ResourceManager.CommonTypes.ErrorAdditionalInfo",
"azure.mgmt.netapp.models.ErrorDetail": "Azure.ResourceManager.CommonTypes.ErrorDetail",
"azure.mgmt.netapp.models.ErrorResponse": "Azure.ResourceManager.CommonTypes.ErrorResponse",
@@ -65,6 +124,8 @@
"azure.mgmt.netapp.models.HourlySchedule": "Microsoft.NetApp.HourlySchedule",
"azure.mgmt.netapp.models.KeyVaultPrivateEndpoint": "Microsoft.NetApp.KeyVaultPrivateEndpoint",
"azure.mgmt.netapp.models.KeyVaultProperties": "Microsoft.NetApp.KeyVaultProperties",
+ "azure.mgmt.netapp.models.LdapConfiguration": "Microsoft.NetApp.LdapConfiguration",
+ "azure.mgmt.netapp.models.LdapConfigurationPatch": "Microsoft.NetApp.LdapConfigurationPatch",
"azure.mgmt.netapp.models.LdapSearchScopeOpt": "Microsoft.NetApp.LdapSearchScopeOpt",
"azure.mgmt.netapp.models.ListQuotaReportResponse": "Microsoft.NetApp.ListQuotaReportResponse",
"azure.mgmt.netapp.models.ListQuotaReportResult": "Microsoft.NetApp.ListQuotaReportResult",
@@ -112,6 +173,9 @@
"azure.mgmt.netapp.models.ReplicationStatus": "Microsoft.NetApp.ReplicationStatus",
"azure.mgmt.netapp.models.ResourceNameAvailabilityRequest": "Microsoft.NetApp.ResourceNameAvailabilityRequest",
"azure.mgmt.netapp.models.RestoreStatus": "Microsoft.NetApp.RestoreStatus",
+ "azure.mgmt.netapp.models.SecretPassword": "Microsoft.NetApp.SecretPassword",
+ "azure.mgmt.netapp.models.SecretPasswordIdentity": "Microsoft.NetApp.SecretPasswordIdentity",
+ "azure.mgmt.netapp.models.SecretPasswordKeyVaultProperties": "Microsoft.NetApp.SecretPasswordKeyVaultProperties",
"azure.mgmt.netapp.models.ServiceSpecification": "Microsoft.NetApp.ServiceSpecification",
"azure.mgmt.netapp.models.SmbSettings": "Microsoft.NetApp.SmbSettings",
"azure.mgmt.netapp.models.Snapshot": "Microsoft.NetApp.Snapshot",
@@ -180,11 +244,14 @@
"azure.mgmt.netapp.models.SmbAccessBasedEnumeration": "Microsoft.NetApp.SmbAccessBasedEnumeration",
"azure.mgmt.netapp.models.SmbNonBrowsable": "Microsoft.NetApp.SmbNonBrowsable",
"azure.mgmt.netapp.models.EncryptionKeySource": "Microsoft.NetApp.EncryptionKeySource",
+ "azure.mgmt.netapp.models.LdapServerType": "Microsoft.NetApp.LdapServerType",
"azure.mgmt.netapp.models.CoolAccessRetrievalPolicy": "Microsoft.NetApp.CoolAccessRetrievalPolicy",
"azure.mgmt.netapp.models.CoolAccessTieringPolicy": "Microsoft.NetApp.CoolAccessTieringPolicy",
"azure.mgmt.netapp.models.FileAccessLogs": "Microsoft.NetApp.FileAccessLogs",
"azure.mgmt.netapp.models.AvsDataStore": "Microsoft.NetApp.AvsDataStore",
"azure.mgmt.netapp.models.EnableSubvolumes": "Microsoft.NetApp.EnableSubvolumes",
+ "azure.mgmt.netapp.models.LargeVolumeType": "Microsoft.NetApp.LargeVolumeType",
+ "azure.mgmt.netapp.models.VolumeLanguage": "Microsoft.NetApp.VolumeLanguage",
"azure.mgmt.netapp.models.BreakthroughMode": "Microsoft.NetApp.BreakthroughMode",
"azure.mgmt.netapp.models.BackupType": "Microsoft.NetApp.BackupType",
"azure.mgmt.netapp.models.VolumeBackupRelationshipStatus": "Microsoft.NetApp.VolumeBackupRelationshipStatus",
@@ -206,19 +273,39 @@
"azure.mgmt.netapp.models.KerberosState": "Microsoft.NetApp.KerberosState",
"azure.mgmt.netapp.models.SmbEncryptionState": "Microsoft.NetApp.SmbEncryptionState",
"azure.mgmt.netapp.models.EncryptionState": "Microsoft.NetApp.EncryptionState",
- "azure.mgmt.netapp.models.VolumeLanguage": "Microsoft.NetApp.VolumeLanguage",
"azure.mgmt.netapp.models.LdapState": "Microsoft.NetApp.LdapState",
- "azure.mgmt.netapp.models.LdapServerType": "Microsoft.NetApp.LdapServerType",
"azure.mgmt.netapp.models.CifsChangeNotifyState": "Microsoft.NetApp.CifsChangeNotifyState",
"azure.mgmt.netapp.models.GlobalFileLockingState": "Microsoft.NetApp.GlobalFileLockingState",
"azure.mgmt.netapp.models.EnableWriteBackState": "Microsoft.NetApp.EnableWriteBackState",
"azure.mgmt.netapp.models.CacheFileAccessLogs": "Microsoft.NetApp.CacheFileAccessLogs",
- "azure.mgmt.netapp.models.RegionStorageToNetworkProximity": "Microsoft.NetApp.RegionStorageToNetworkProximity",
- "azure.mgmt.netapp.models.ActiveDirectoryStatus": "Microsoft.NetApp.ActiveDirectoryStatus",
"azure.mgmt.netapp.models.KeySource": "Microsoft.NetApp.KeySource",
+ "azure.mgmt.netapp.models.ElasticKeyVaultStatus": "Microsoft.NetApp.ElasticKeyVaultStatus",
+ "azure.mgmt.netapp.models.ManagedServiceIdentityType": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType",
+ "azure.mgmt.netapp.models.ElasticServiceLevel": "Microsoft.NetApp.ElasticServiceLevel",
+ "azure.mgmt.netapp.models.ElasticPoolEncryptionKeySource": "Microsoft.NetApp.ElasticPoolEncryptionKeySource",
+ "azure.mgmt.netapp.models.ElasticResourceAvailabilityStatus": "Microsoft.NetApp.ElasticResourceAvailabilityStatus",
+ "azure.mgmt.netapp.models.CheckElasticResourceAvailabilityStatus": "Microsoft.NetApp.CheckElasticResourceAvailabilityStatus",
+ "azure.mgmt.netapp.models.CheckElasticResourceAvailabilityReason": "Microsoft.NetApp.CheckElasticResourceAvailabilityReason",
+ "azure.mgmt.netapp.models.ElasticUnixAccessRule": "Microsoft.NetApp.ElasticUnixAccessRule",
+ "azure.mgmt.netapp.models.ElasticNfsv3Access": "Microsoft.NetApp.ElasticNfsv3Access",
+ "azure.mgmt.netapp.models.ElasticNfsv4Access": "Microsoft.NetApp.ElasticNfsv4Access",
+ "azure.mgmt.netapp.models.ElasticRootAccess": "Microsoft.NetApp.ElasticRootAccess",
+ "azure.mgmt.netapp.models.ElasticProtocolType": "Microsoft.NetApp.ElasticProtocolType",
+ "azure.mgmt.netapp.models.ElasticVolumePolicyEnforcement": "Microsoft.NetApp.ElasticVolumePolicyEnforcement",
+ "azure.mgmt.netapp.models.SnapshotDirectoryVisibility": "Microsoft.NetApp.SnapshotDirectoryVisibility",
+ "azure.mgmt.netapp.models.ElasticSmbEncryption": "Microsoft.NetApp.ElasticSmbEncryption",
+ "azure.mgmt.netapp.models.ElasticVolumeRestorationState": "Microsoft.NetApp.ElasticVolumeRestorationState",
+ "azure.mgmt.netapp.models.DayOfWeek": "Microsoft.NetApp.DayOfWeek",
+ "azure.mgmt.netapp.models.PolicyStatus": "Microsoft.NetApp.PolicyStatus",
+ "azure.mgmt.netapp.models.ElasticBackupPolicyState": "Microsoft.NetApp.ElasticBackupPolicyState",
+ "azure.mgmt.netapp.models.ElasticBackupType": "Microsoft.NetApp.ElasticBackupType",
+ "azure.mgmt.netapp.models.SnapshotUsage": "Microsoft.NetApp.SnapshotUsage",
+ "azure.mgmt.netapp.models.VolumeSize": "Microsoft.NetApp.VolumeSize",
+ "azure.mgmt.netapp.models.ActiveDirectoryStatus": "Microsoft.NetApp.ActiveDirectoryStatus",
+ "azure.mgmt.netapp.models.RegionStorageToNetworkProximity": "Microsoft.NetApp.RegionStorageToNetworkProximity",
"azure.mgmt.netapp.models.KeyVaultStatus": "Microsoft.NetApp.KeyVaultStatus",
"azure.mgmt.netapp.models.MultiAdStatus": "Microsoft.NetApp.MultiAdStatus",
- "azure.mgmt.netapp.models.ManagedServiceIdentityType": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType",
+ "azure.mgmt.netapp.models.BindAuthenticationLevel": "Microsoft.NetApp.BindAuthenticationLevel",
"azure.mgmt.netapp.models.QosType": "Microsoft.NetApp.QosType",
"azure.mgmt.netapp.models.EncryptionType": "Microsoft.NetApp.EncryptionType",
"azure.mgmt.netapp.models.InAvailabilityReasonType": "Microsoft.NetApp.InAvailabilityReasonType",
@@ -401,6 +488,106 @@
"azure.mgmt.netapp.aio.operations.CachesOperations.begin_pool_change": "Microsoft.NetApp.Caches.poolChange",
"azure.mgmt.netapp.operations.CachesOperations.begin_reset_smb_password": "Microsoft.NetApp.Caches.resetSmbPassword",
"azure.mgmt.netapp.aio.operations.CachesOperations.begin_reset_smb_password": "Microsoft.NetApp.Caches.resetSmbPassword",
+ "azure.mgmt.netapp.operations.ElasticAccountsOperations.get": "Microsoft.NetApp.ElasticAccounts.get",
+ "azure.mgmt.netapp.aio.operations.ElasticAccountsOperations.get": "Microsoft.NetApp.ElasticAccounts.get",
+ "azure.mgmt.netapp.operations.ElasticAccountsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticAccounts.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ElasticAccountsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticAccounts.createOrUpdate",
+ "azure.mgmt.netapp.operations.ElasticAccountsOperations.begin_update": "Microsoft.NetApp.ElasticAccounts.update",
+ "azure.mgmt.netapp.aio.operations.ElasticAccountsOperations.begin_update": "Microsoft.NetApp.ElasticAccounts.update",
+ "azure.mgmt.netapp.operations.ElasticAccountsOperations.begin_delete": "Microsoft.NetApp.ElasticAccounts.delete",
+ "azure.mgmt.netapp.aio.operations.ElasticAccountsOperations.begin_delete": "Microsoft.NetApp.ElasticAccounts.delete",
+ "azure.mgmt.netapp.operations.ElasticAccountsOperations.list_by_resource_group": "Microsoft.NetApp.ElasticAccounts.listByResourceGroup",
+ "azure.mgmt.netapp.aio.operations.ElasticAccountsOperations.list_by_resource_group": "Microsoft.NetApp.ElasticAccounts.listByResourceGroup",
+ "azure.mgmt.netapp.operations.ElasticAccountsOperations.list_by_subscription": "Microsoft.NetApp.ElasticAccounts.listBySubscription",
+ "azure.mgmt.netapp.aio.operations.ElasticAccountsOperations.list_by_subscription": "Microsoft.NetApp.ElasticAccounts.listBySubscription",
+ "azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations.get": "Microsoft.NetApp.ElasticCapacityPools.get",
+ "azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations.get": "Microsoft.NetApp.ElasticCapacityPools.get",
+ "azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticCapacityPools.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticCapacityPools.createOrUpdate",
+ "azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations.begin_update": "Microsoft.NetApp.ElasticCapacityPools.update",
+ "azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations.begin_update": "Microsoft.NetApp.ElasticCapacityPools.update",
+ "azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations.begin_delete": "Microsoft.NetApp.ElasticCapacityPools.delete",
+ "azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations.begin_delete": "Microsoft.NetApp.ElasticCapacityPools.delete",
+ "azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations.list_by_elastic_account": "Microsoft.NetApp.ElasticCapacityPools.listByElasticAccount",
+ "azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations.list_by_elastic_account": "Microsoft.NetApp.ElasticCapacityPools.listByElasticAccount",
+ "azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations.begin_change_zone": "Microsoft.NetApp.ElasticCapacityPools.changeZone",
+ "azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations.begin_change_zone": "Microsoft.NetApp.ElasticCapacityPools.changeZone",
+ "azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations.check_volume_file_path_availability": "Microsoft.NetApp.ElasticCapacityPools.checkVolumeFilePathAvailability",
+ "azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations.check_volume_file_path_availability": "Microsoft.NetApp.ElasticCapacityPools.checkVolumeFilePathAvailability",
+ "azure.mgmt.netapp.operations.ElasticVolumesOperations.get": "Microsoft.NetApp.ElasticVolumes.get",
+ "azure.mgmt.netapp.aio.operations.ElasticVolumesOperations.get": "Microsoft.NetApp.ElasticVolumes.get",
+ "azure.mgmt.netapp.operations.ElasticVolumesOperations.begin_create_or_update": "Microsoft.NetApp.ElasticVolumes.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ElasticVolumesOperations.begin_create_or_update": "Microsoft.NetApp.ElasticVolumes.createOrUpdate",
+ "azure.mgmt.netapp.operations.ElasticVolumesOperations.begin_update": "Microsoft.NetApp.ElasticVolumes.update",
+ "azure.mgmt.netapp.aio.operations.ElasticVolumesOperations.begin_update": "Microsoft.NetApp.ElasticVolumes.update",
+ "azure.mgmt.netapp.operations.ElasticVolumesOperations.begin_delete": "Microsoft.NetApp.ElasticVolumes.delete",
+ "azure.mgmt.netapp.aio.operations.ElasticVolumesOperations.begin_delete": "Microsoft.NetApp.ElasticVolumes.delete",
+ "azure.mgmt.netapp.operations.ElasticVolumesOperations.list_by_elastic_pool": "Microsoft.NetApp.ElasticVolumes.listByElasticPool",
+ "azure.mgmt.netapp.aio.operations.ElasticVolumesOperations.list_by_elastic_pool": "Microsoft.NetApp.ElasticVolumes.listByElasticPool",
+ "azure.mgmt.netapp.operations.ElasticVolumesOperations.begin_revert": "Microsoft.NetApp.ElasticVolumes.revert",
+ "azure.mgmt.netapp.aio.operations.ElasticVolumesOperations.begin_revert": "Microsoft.NetApp.ElasticVolumes.revert",
+ "azure.mgmt.netapp.operations.ElasticSnapshotsOperations.get": "Microsoft.NetApp.ElasticSnapshots.get",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotsOperations.get": "Microsoft.NetApp.ElasticSnapshots.get",
+ "azure.mgmt.netapp.operations.ElasticSnapshotsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticSnapshots.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticSnapshots.createOrUpdate",
+ "azure.mgmt.netapp.operations.ElasticSnapshotsOperations.begin_delete": "Microsoft.NetApp.ElasticSnapshots.delete",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotsOperations.begin_delete": "Microsoft.NetApp.ElasticSnapshots.delete",
+ "azure.mgmt.netapp.operations.ElasticSnapshotsOperations.list_by_elastic_volume": "Microsoft.NetApp.ElasticSnapshots.listByElasticVolume",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotsOperations.list_by_elastic_volume": "Microsoft.NetApp.ElasticSnapshots.listByElasticVolume",
+ "azure.mgmt.netapp.operations.ElasticSnapshotPoliciesOperations.get": "Microsoft.NetApp.ElasticSnapshotPolicies.get",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotPoliciesOperations.get": "Microsoft.NetApp.ElasticSnapshotPolicies.get",
+ "azure.mgmt.netapp.operations.ElasticSnapshotPoliciesOperations.begin_create_or_update": "Microsoft.NetApp.ElasticSnapshotPolicies.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotPoliciesOperations.begin_create_or_update": "Microsoft.NetApp.ElasticSnapshotPolicies.createOrUpdate",
+ "azure.mgmt.netapp.operations.ElasticSnapshotPoliciesOperations.begin_update": "Microsoft.NetApp.ElasticSnapshotPolicies.update",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotPoliciesOperations.begin_update": "Microsoft.NetApp.ElasticSnapshotPolicies.update",
+ "azure.mgmt.netapp.operations.ElasticSnapshotPoliciesOperations.begin_delete": "Microsoft.NetApp.ElasticSnapshotPolicies.delete",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotPoliciesOperations.begin_delete": "Microsoft.NetApp.ElasticSnapshotPolicies.delete",
+ "azure.mgmt.netapp.operations.ElasticSnapshotPoliciesOperations.list_by_elastic_account": "Microsoft.NetApp.ElasticSnapshotPolicies.listByElasticAccount",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotPoliciesOperations.list_by_elastic_account": "Microsoft.NetApp.ElasticSnapshotPolicies.listByElasticAccount",
+ "azure.mgmt.netapp.operations.ElasticSnapshotPoliciesOperations.list_elastic_volumes": "Microsoft.NetApp.ElasticSnapshotPolicies.listElasticVolumes",
+ "azure.mgmt.netapp.aio.operations.ElasticSnapshotPoliciesOperations.list_elastic_volumes": "Microsoft.NetApp.ElasticSnapshotPolicies.listElasticVolumes",
+ "azure.mgmt.netapp.operations.ElasticBackupVaultsOperations.get": "Microsoft.NetApp.ElasticBackupVaults.get",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupVaultsOperations.get": "Microsoft.NetApp.ElasticBackupVaults.get",
+ "azure.mgmt.netapp.operations.ElasticBackupVaultsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticBackupVaults.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupVaultsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticBackupVaults.createOrUpdate",
+ "azure.mgmt.netapp.operations.ElasticBackupVaultsOperations.begin_update": "Microsoft.NetApp.ElasticBackupVaults.update",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupVaultsOperations.begin_update": "Microsoft.NetApp.ElasticBackupVaults.update",
+ "azure.mgmt.netapp.operations.ElasticBackupVaultsOperations.begin_delete": "Microsoft.NetApp.ElasticBackupVaults.delete",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupVaultsOperations.begin_delete": "Microsoft.NetApp.ElasticBackupVaults.delete",
+ "azure.mgmt.netapp.operations.ElasticBackupVaultsOperations.list_by_elastic_account": "Microsoft.NetApp.ElasticBackupVaults.listByElasticAccount",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupVaultsOperations.list_by_elastic_account": "Microsoft.NetApp.ElasticBackupVaults.listByElasticAccount",
+ "azure.mgmt.netapp.operations.ElasticBackupPoliciesOperations.get": "Microsoft.NetApp.ElasticBackupPolicies.get",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupPoliciesOperations.get": "Microsoft.NetApp.ElasticBackupPolicies.get",
+ "azure.mgmt.netapp.operations.ElasticBackupPoliciesOperations.begin_create_or_update": "Microsoft.NetApp.ElasticBackupPolicies.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupPoliciesOperations.begin_create_or_update": "Microsoft.NetApp.ElasticBackupPolicies.createOrUpdate",
+ "azure.mgmt.netapp.operations.ElasticBackupPoliciesOperations.begin_update": "Microsoft.NetApp.ElasticBackupPolicies.update",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupPoliciesOperations.begin_update": "Microsoft.NetApp.ElasticBackupPolicies.update",
+ "azure.mgmt.netapp.operations.ElasticBackupPoliciesOperations.begin_delete": "Microsoft.NetApp.ElasticBackupPolicies.delete",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupPoliciesOperations.begin_delete": "Microsoft.NetApp.ElasticBackupPolicies.delete",
+ "azure.mgmt.netapp.operations.ElasticBackupPoliciesOperations.list_by_elastic_account": "Microsoft.NetApp.ElasticBackupPolicies.listByElasticAccount",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupPoliciesOperations.list_by_elastic_account": "Microsoft.NetApp.ElasticBackupPolicies.listByElasticAccount",
+ "azure.mgmt.netapp.operations.ElasticBackupsOperations.get": "Microsoft.NetApp.ElasticBackups.get",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupsOperations.get": "Microsoft.NetApp.ElasticBackups.get",
+ "azure.mgmt.netapp.operations.ElasticBackupsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticBackups.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupsOperations.begin_create_or_update": "Microsoft.NetApp.ElasticBackups.createOrUpdate",
+ "azure.mgmt.netapp.operations.ElasticBackupsOperations.begin_update": "Microsoft.NetApp.ElasticBackups.update",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupsOperations.begin_update": "Microsoft.NetApp.ElasticBackups.update",
+ "azure.mgmt.netapp.operations.ElasticBackupsOperations.begin_delete": "Microsoft.NetApp.ElasticBackups.delete",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupsOperations.begin_delete": "Microsoft.NetApp.ElasticBackups.delete",
+ "azure.mgmt.netapp.operations.ElasticBackupsOperations.list_by_vault": "Microsoft.NetApp.ElasticBackups.listByVault",
+ "azure.mgmt.netapp.aio.operations.ElasticBackupsOperations.list_by_vault": "Microsoft.NetApp.ElasticBackups.listByVault",
+ "azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations.get": "Microsoft.NetApp.ActiveDirectoryConfigs.get",
+ "azure.mgmt.netapp.aio.operations.ActiveDirectoryConfigsOperations.get": "Microsoft.NetApp.ActiveDirectoryConfigs.get",
+ "azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations.begin_create_or_update": "Microsoft.NetApp.ActiveDirectoryConfigs.createOrUpdate",
+ "azure.mgmt.netapp.aio.operations.ActiveDirectoryConfigsOperations.begin_create_or_update": "Microsoft.NetApp.ActiveDirectoryConfigs.createOrUpdate",
+ "azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations.begin_update": "Microsoft.NetApp.ActiveDirectoryConfigs.update",
+ "azure.mgmt.netapp.aio.operations.ActiveDirectoryConfigsOperations.begin_update": "Microsoft.NetApp.ActiveDirectoryConfigs.update",
+ "azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations.begin_delete": "Microsoft.NetApp.ActiveDirectoryConfigs.delete",
+ "azure.mgmt.netapp.aio.operations.ActiveDirectoryConfigsOperations.begin_delete": "Microsoft.NetApp.ActiveDirectoryConfigs.delete",
+ "azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations.list_by_resource_group": "Microsoft.NetApp.ActiveDirectoryConfigs.listByResourceGroup",
+ "azure.mgmt.netapp.aio.operations.ActiveDirectoryConfigsOperations.list_by_resource_group": "Microsoft.NetApp.ActiveDirectoryConfigs.listByResourceGroup",
+ "azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations.list_by_subscription": "Microsoft.NetApp.ActiveDirectoryConfigs.listBySubscription",
+ "azure.mgmt.netapp.aio.operations.ActiveDirectoryConfigsOperations.list_by_subscription": "Microsoft.NetApp.ActiveDirectoryConfigs.listBySubscription",
"azure.mgmt.netapp.operations.NetAppResourceQuotaLimitsOperations.get": "Microsoft.NetApp.SubscriptionQuotaItems.get",
"azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsOperations.get": "Microsoft.NetApp.SubscriptionQuotaItems.get",
"azure.mgmt.netapp.operations.NetAppResourceQuotaLimitsOperations.list": "Microsoft.NetApp.SubscriptionQuotaItems.list",
@@ -429,6 +616,8 @@
"azure.mgmt.netapp.aio.operations.AccountsOperations.begin_get_change_key_vault_information": "Microsoft.NetApp.NetAppAccounts.getChangeKeyVaultInformation",
"azure.mgmt.netapp.operations.AccountsOperations.begin_change_key_vault": "Microsoft.NetApp.NetAppAccounts.changeKeyVault",
"azure.mgmt.netapp.aio.operations.AccountsOperations.begin_change_key_vault": "Microsoft.NetApp.NetAppAccounts.changeKeyVault",
+ "azure.mgmt.netapp.operations.AccountsOperations.begin_refresh_ldap_bind_password": "Microsoft.NetApp.NetAppAccounts.refreshLdapBindPassword",
+ "azure.mgmt.netapp.aio.operations.AccountsOperations.begin_refresh_ldap_bind_password": "Microsoft.NetApp.NetAppAccounts.refreshLdapBindPassword",
"azure.mgmt.netapp.operations.BackupsUnderAccountOperations.begin_migrate_backups": "Microsoft.NetApp.NetAppAccounts.migrateBackups",
"azure.mgmt.netapp.aio.operations.BackupsUnderAccountOperations.begin_migrate_backups": "Microsoft.NetApp.NetAppAccounts.migrateBackups",
"azure.mgmt.netapp.operations.PoolsOperations.get": "Microsoft.NetApp.CapacityPools.get",
diff --git a/sdk/netapp/azure-mgmt-netapp/assets.json b/sdk/netapp/azure-mgmt-netapp/assets.json
index 5fb6c5dd9c5d..36175b60a01b 100644
--- a/sdk/netapp/azure-mgmt-netapp/assets.json
+++ b/sdk/netapp/azure-mgmt-netapp/assets.json
@@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "python",
"TagPrefix": "python/netapp/azure-mgmt-netapp",
- "Tag": "python/netapp/azure-mgmt-netapp_485d184f97"
+ "Tag": "python/netapp/azure-mgmt-netapp_545e21c248"
}
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_client.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_client.py
index 8650015b8071..6940e040cc44 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_client.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_client.py
@@ -21,6 +21,7 @@
from ._utils.serialization import Deserializer, Serializer
from .operations import (
AccountsOperations,
+ ActiveDirectoryConfigsOperations,
BackupPoliciesOperations,
BackupVaultsOperations,
BackupsOperations,
@@ -29,6 +30,14 @@
BackupsUnderVolumeOperations,
BucketsOperations,
CachesOperations,
+ ElasticAccountsOperations,
+ ElasticBackupPoliciesOperations,
+ ElasticBackupVaultsOperations,
+ ElasticBackupsOperations,
+ ElasticCapacityPoolsOperations,
+ ElasticSnapshotPoliciesOperations,
+ ElasticSnapshotsOperations,
+ ElasticVolumesOperations,
NetAppResourceOperations,
NetAppResourceQuotaLimitsAccountOperations,
NetAppResourceQuotaLimitsOperations,
@@ -86,6 +95,26 @@ class NetAppManagementClient: # pylint: disable=too-many-instance-attributes
:vartype buckets: azure.mgmt.netapp.operations.BucketsOperations
:ivar caches: CachesOperations operations
:vartype caches: azure.mgmt.netapp.operations.CachesOperations
+ :ivar elastic_accounts: ElasticAccountsOperations operations
+ :vartype elastic_accounts: azure.mgmt.netapp.operations.ElasticAccountsOperations
+ :ivar elastic_capacity_pools: ElasticCapacityPoolsOperations operations
+ :vartype elastic_capacity_pools: azure.mgmt.netapp.operations.ElasticCapacityPoolsOperations
+ :ivar elastic_volumes: ElasticVolumesOperations operations
+ :vartype elastic_volumes: azure.mgmt.netapp.operations.ElasticVolumesOperations
+ :ivar elastic_snapshots: ElasticSnapshotsOperations operations
+ :vartype elastic_snapshots: azure.mgmt.netapp.operations.ElasticSnapshotsOperations
+ :ivar elastic_snapshot_policies: ElasticSnapshotPoliciesOperations operations
+ :vartype elastic_snapshot_policies:
+ azure.mgmt.netapp.operations.ElasticSnapshotPoliciesOperations
+ :ivar elastic_backup_vaults: ElasticBackupVaultsOperations operations
+ :vartype elastic_backup_vaults: azure.mgmt.netapp.operations.ElasticBackupVaultsOperations
+ :ivar elastic_backup_policies: ElasticBackupPoliciesOperations operations
+ :vartype elastic_backup_policies: azure.mgmt.netapp.operations.ElasticBackupPoliciesOperations
+ :ivar elastic_backups: ElasticBackupsOperations operations
+ :vartype elastic_backups: azure.mgmt.netapp.operations.ElasticBackupsOperations
+ :ivar active_directory_configs: ActiveDirectoryConfigsOperations operations
+ :vartype active_directory_configs:
+ azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations
:ivar net_app_resource_quota_limits: NetAppResourceQuotaLimitsOperations operations
:vartype net_app_resource_quota_limits:
azure.mgmt.netapp.operations.NetAppResourceQuotaLimitsOperations
@@ -118,9 +147,10 @@ class NetAppManagementClient: # pylint: disable=too-many-instance-attributes
:keyword cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is
None.
:paramtype cloud_setting: ~azure.core.AzureClouds
- :keyword api_version: The API version to use for this operation. Known values are "2026-05-01"
- and None. Default value is None. If not set, the operation's default API version will be used.
- Note that overriding this default value may result in unsupported behavior.
+ :keyword api_version: The API version to use for this operation. Known values are
+ "2026-05-15-preview" and None. Default value is None. If not set, the operation's default API
+ version will be used. Note that overriding this default value may result in unsupported
+ behavior.
:paramtype api_version: str
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
Retry-After header is present.
@@ -194,6 +224,29 @@ def __init__(
self.backup_vaults = BackupVaultsOperations(self._client, self._config, self._serialize, self._deserialize)
self.buckets = BucketsOperations(self._client, self._config, self._serialize, self._deserialize)
self.caches = CachesOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.elastic_accounts = ElasticAccountsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_capacity_pools = ElasticCapacityPoolsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_volumes = ElasticVolumesOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.elastic_snapshots = ElasticSnapshotsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_snapshot_policies = ElasticSnapshotPoliciesOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_backup_vaults = ElasticBackupVaultsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_backup_policies = ElasticBackupPoliciesOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_backups = ElasticBackupsOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.active_directory_configs = ActiveDirectoryConfigsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
self.net_app_resource_quota_limits = NetAppResourceQuotaLimitsOperations(
self._client, self._config, self._serialize, self._deserialize
)
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_configuration.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_configuration.py
index 9543f23f36a0..20b61fab84e0 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_configuration.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_configuration.py
@@ -33,9 +33,10 @@ class NetAppManagementClientConfiguration: # pylint: disable=too-many-instance-
:param cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is
None.
:type cloud_setting: ~azure.core.AzureClouds
- :keyword api_version: The API version to use for this operation. Known values are "2026-05-01"
- and None. Default value is None. If not set, the operation's default API version will be used.
- Note that overriding this default value may result in unsupported behavior.
+ :keyword api_version: The API version to use for this operation. Known values are
+ "2026-05-15-preview" and None. Default value is None. If not set, the operation's default API
+ version will be used. Note that overriding this default value may result in unsupported
+ behavior.
:paramtype api_version: str
"""
@@ -47,7 +48,7 @@ def __init__(
cloud_setting: Optional["AzureClouds"] = None,
**kwargs: Any
) -> None:
- api_version: str = kwargs.pop("api_version", "2026-05-01")
+ api_version: str = kwargs.pop("api_version", "2026-05-15-preview")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_version.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_version.py
index 193979baa1ba..51e64cdaf242 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_version.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "17.1.0"
+VERSION = "18.0.0b2"
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/_client.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/_client.py
index 6c3397911149..8708241629ac 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/_client.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/_client.py
@@ -21,6 +21,7 @@
from ._configuration import NetAppManagementClientConfiguration
from .operations import (
AccountsOperations,
+ ActiveDirectoryConfigsOperations,
BackupPoliciesOperations,
BackupVaultsOperations,
BackupsOperations,
@@ -29,6 +30,14 @@
BackupsUnderVolumeOperations,
BucketsOperations,
CachesOperations,
+ ElasticAccountsOperations,
+ ElasticBackupPoliciesOperations,
+ ElasticBackupVaultsOperations,
+ ElasticBackupsOperations,
+ ElasticCapacityPoolsOperations,
+ ElasticSnapshotPoliciesOperations,
+ ElasticSnapshotsOperations,
+ ElasticVolumesOperations,
NetAppResourceOperations,
NetAppResourceQuotaLimitsAccountOperations,
NetAppResourceQuotaLimitsOperations,
@@ -86,6 +95,28 @@ class NetAppManagementClient: # pylint: disable=too-many-instance-attributes
:vartype buckets: azure.mgmt.netapp.aio.operations.BucketsOperations
:ivar caches: CachesOperations operations
:vartype caches: azure.mgmt.netapp.aio.operations.CachesOperations
+ :ivar elastic_accounts: ElasticAccountsOperations operations
+ :vartype elastic_accounts: azure.mgmt.netapp.aio.operations.ElasticAccountsOperations
+ :ivar elastic_capacity_pools: ElasticCapacityPoolsOperations operations
+ :vartype elastic_capacity_pools:
+ azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations
+ :ivar elastic_volumes: ElasticVolumesOperations operations
+ :vartype elastic_volumes: azure.mgmt.netapp.aio.operations.ElasticVolumesOperations
+ :ivar elastic_snapshots: ElasticSnapshotsOperations operations
+ :vartype elastic_snapshots: azure.mgmt.netapp.aio.operations.ElasticSnapshotsOperations
+ :ivar elastic_snapshot_policies: ElasticSnapshotPoliciesOperations operations
+ :vartype elastic_snapshot_policies:
+ azure.mgmt.netapp.aio.operations.ElasticSnapshotPoliciesOperations
+ :ivar elastic_backup_vaults: ElasticBackupVaultsOperations operations
+ :vartype elastic_backup_vaults: azure.mgmt.netapp.aio.operations.ElasticBackupVaultsOperations
+ :ivar elastic_backup_policies: ElasticBackupPoliciesOperations operations
+ :vartype elastic_backup_policies:
+ azure.mgmt.netapp.aio.operations.ElasticBackupPoliciesOperations
+ :ivar elastic_backups: ElasticBackupsOperations operations
+ :vartype elastic_backups: azure.mgmt.netapp.aio.operations.ElasticBackupsOperations
+ :ivar active_directory_configs: ActiveDirectoryConfigsOperations operations
+ :vartype active_directory_configs:
+ azure.mgmt.netapp.aio.operations.ActiveDirectoryConfigsOperations
:ivar net_app_resource_quota_limits: NetAppResourceQuotaLimitsOperations operations
:vartype net_app_resource_quota_limits:
azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsOperations
@@ -119,9 +150,10 @@ class NetAppManagementClient: # pylint: disable=too-many-instance-attributes
:keyword cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is
None.
:paramtype cloud_setting: ~azure.core.AzureClouds
- :keyword api_version: The API version to use for this operation. Known values are "2026-05-01"
- and None. Default value is None. If not set, the operation's default API version will be used.
- Note that overriding this default value may result in unsupported behavior.
+ :keyword api_version: The API version to use for this operation. Known values are
+ "2026-05-15-preview" and None. Default value is None. If not set, the operation's default API
+ version will be used. Note that overriding this default value may result in unsupported
+ behavior.
:paramtype api_version: str
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
Retry-After header is present.
@@ -197,6 +229,29 @@ def __init__(
self.backup_vaults = BackupVaultsOperations(self._client, self._config, self._serialize, self._deserialize)
self.buckets = BucketsOperations(self._client, self._config, self._serialize, self._deserialize)
self.caches = CachesOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.elastic_accounts = ElasticAccountsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_capacity_pools = ElasticCapacityPoolsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_volumes = ElasticVolumesOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.elastic_snapshots = ElasticSnapshotsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_snapshot_policies = ElasticSnapshotPoliciesOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_backup_vaults = ElasticBackupVaultsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_backup_policies = ElasticBackupPoliciesOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.elastic_backups = ElasticBackupsOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.active_directory_configs = ActiveDirectoryConfigsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
self.net_app_resource_quota_limits = NetAppResourceQuotaLimitsOperations(
self._client, self._config, self._serialize, self._deserialize
)
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/_configuration.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/_configuration.py
index 9c7a4141e7b3..03a93eb6f1a8 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/_configuration.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/_configuration.py
@@ -33,9 +33,10 @@ class NetAppManagementClientConfiguration: # pylint: disable=too-many-instance-
:param cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is
None.
:type cloud_setting: ~azure.core.AzureClouds
- :keyword api_version: The API version to use for this operation. Known values are "2026-05-01"
- and None. Default value is None. If not set, the operation's default API version will be used.
- Note that overriding this default value may result in unsupported behavior.
+ :keyword api_version: The API version to use for this operation. Known values are
+ "2026-05-15-preview" and None. Default value is None. If not set, the operation's default API
+ version will be used. Note that overriding this default value may result in unsupported
+ behavior.
:paramtype api_version: str
"""
@@ -47,7 +48,7 @@ def __init__(
cloud_setting: Optional["AzureClouds"] = None,
**kwargs: Any
) -> None:
- api_version: str = kwargs.pop("api_version", "2026-05-01")
+ api_version: str = kwargs.pop("api_version", "2026-05-15-preview")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/operations/__init__.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/operations/__init__.py
index 4edfa8469e9a..dc8916780c55 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/operations/__init__.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/operations/__init__.py
@@ -25,6 +25,15 @@
from ._operations import BackupVaultsOperations # type: ignore
from ._operations import BucketsOperations # type: ignore
from ._operations import CachesOperations # type: ignore
+from ._operations import ElasticAccountsOperations # type: ignore
+from ._operations import ElasticCapacityPoolsOperations # type: ignore
+from ._operations import ElasticVolumesOperations # type: ignore
+from ._operations import ElasticSnapshotsOperations # type: ignore
+from ._operations import ElasticSnapshotPoliciesOperations # type: ignore
+from ._operations import ElasticBackupVaultsOperations # type: ignore
+from ._operations import ElasticBackupPoliciesOperations # type: ignore
+from ._operations import ElasticBackupsOperations # type: ignore
+from ._operations import ActiveDirectoryConfigsOperations # type: ignore
from ._operations import NetAppResourceQuotaLimitsOperations # type: ignore
from ._operations import NetAppResourceRegionInfosOperations # type: ignore
from ._operations import AccountsOperations # type: ignore
@@ -54,6 +63,15 @@
"BackupVaultsOperations",
"BucketsOperations",
"CachesOperations",
+ "ElasticAccountsOperations",
+ "ElasticCapacityPoolsOperations",
+ "ElasticVolumesOperations",
+ "ElasticSnapshotsOperations",
+ "ElasticSnapshotPoliciesOperations",
+ "ElasticBackupVaultsOperations",
+ "ElasticBackupPoliciesOperations",
+ "ElasticBackupsOperations",
+ "ActiveDirectoryConfigsOperations",
"NetAppResourceQuotaLimitsOperations",
"NetAppResourceRegionInfosOperations",
"AccountsOperations",
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/operations/_operations.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/operations/_operations.py
index 097831dafff3..d01dafbde54a 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/operations/_operations.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/aio/operations/_operations.py
@@ -45,9 +45,16 @@
build_accounts_get_request,
build_accounts_list_by_subscription_request,
build_accounts_list_request,
+ build_accounts_refresh_ldap_bind_password_request,
build_accounts_renew_credentials_request,
build_accounts_transition_to_cmk_request,
build_accounts_update_request,
+ build_active_directory_configs_create_or_update_request,
+ build_active_directory_configs_delete_request,
+ build_active_directory_configs_get_request,
+ build_active_directory_configs_list_by_resource_group_request,
+ build_active_directory_configs_list_by_subscription_request,
+ build_active_directory_configs_update_request,
build_backup_policies_create_request,
build_backup_policies_delete_request,
build_backup_policies_get_request,
@@ -84,6 +91,50 @@
build_caches_pool_change_request,
build_caches_reset_smb_password_request,
build_caches_update_request,
+ build_elastic_accounts_create_or_update_request,
+ build_elastic_accounts_delete_request,
+ build_elastic_accounts_get_request,
+ build_elastic_accounts_list_by_resource_group_request,
+ build_elastic_accounts_list_by_subscription_request,
+ build_elastic_accounts_update_request,
+ build_elastic_backup_policies_create_or_update_request,
+ build_elastic_backup_policies_delete_request,
+ build_elastic_backup_policies_get_request,
+ build_elastic_backup_policies_list_by_elastic_account_request,
+ build_elastic_backup_policies_update_request,
+ build_elastic_backup_vaults_create_or_update_request,
+ build_elastic_backup_vaults_delete_request,
+ build_elastic_backup_vaults_get_request,
+ build_elastic_backup_vaults_list_by_elastic_account_request,
+ build_elastic_backup_vaults_update_request,
+ build_elastic_backups_create_or_update_request,
+ build_elastic_backups_delete_request,
+ build_elastic_backups_get_request,
+ build_elastic_backups_list_by_vault_request,
+ build_elastic_backups_update_request,
+ build_elastic_capacity_pools_change_zone_request,
+ build_elastic_capacity_pools_check_volume_file_path_availability_request,
+ build_elastic_capacity_pools_create_or_update_request,
+ build_elastic_capacity_pools_delete_request,
+ build_elastic_capacity_pools_get_request,
+ build_elastic_capacity_pools_list_by_elastic_account_request,
+ build_elastic_capacity_pools_update_request,
+ build_elastic_snapshot_policies_create_or_update_request,
+ build_elastic_snapshot_policies_delete_request,
+ build_elastic_snapshot_policies_get_request,
+ build_elastic_snapshot_policies_list_by_elastic_account_request,
+ build_elastic_snapshot_policies_list_elastic_volumes_request,
+ build_elastic_snapshot_policies_update_request,
+ build_elastic_snapshots_create_or_update_request,
+ build_elastic_snapshots_delete_request,
+ build_elastic_snapshots_get_request,
+ build_elastic_snapshots_list_by_elastic_volume_request,
+ build_elastic_volumes_create_or_update_request,
+ build_elastic_volumes_delete_request,
+ build_elastic_volumes_get_request,
+ build_elastic_volumes_list_by_elastic_pool_request,
+ build_elastic_volumes_revert_request,
+ build_elastic_volumes_update_request,
build_net_app_resource_check_file_path_availability_request,
build_net_app_resource_check_name_availability_request,
build_net_app_resource_check_quota_availability_request,
@@ -322,6 +373,7 @@ def __init__(self, *args, **kwargs) -> None:
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def get(
@@ -416,6 +468,7 @@ async def get(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> AsyncItemPaged["_models.QuotaItem"]:
@@ -3945,6 +3998,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-long
@@ -4161,6 +4215,7 @@ async def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-to
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
@@ -4971,6 +5026,7 @@ def list_replications(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
def list_replications(
@@ -7226,6 +7282,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _list_quota_report_initial(
@@ -7441,6 +7498,7 @@ async def begin_list_quota_report(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_list_quota_report(
@@ -11341,6 +11399,7 @@ def __init__(self, *args, **kwargs) -> None:
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def get(
@@ -11457,6 +11516,7 @@ async def get(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
def list(
@@ -11595,6 +11655,7 @@ async def get_next(next_link=None):
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _clear_suspects_initial(
@@ -11822,6 +11883,7 @@ async def begin_clear_suspects(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_clear_suspects(
@@ -12772,6 +12834,7 @@ def __init__(self, *args, **kwargs) -> None:
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def get(
@@ -12885,6 +12948,7 @@ async def get(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _create_or_update_initial(
@@ -13112,6 +13176,7 @@ async def begin_create_or_update(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_create_or_update(
@@ -13225,6 +13290,7 @@ def get_long_running_output(pipeline_response):
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _update_initial(
@@ -13450,6 +13516,7 @@ async def begin_update(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_update(
@@ -13561,6 +13628,7 @@ def get_long_running_output(pipeline_response):
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _delete_initial(
@@ -13659,6 +13727,7 @@ async def _delete_initial(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_delete(
@@ -13757,6 +13826,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
def list(
@@ -14009,6 +14079,7 @@ async def generate_credentials(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def generate_credentials(
@@ -14137,6 +14208,7 @@ async def generate_credentials(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _generate_akv_credentials_initial(
@@ -14357,6 +14429,7 @@ async def begin_generate_akv_credentials(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_generate_akv_credentials(
@@ -14463,6 +14536,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _refresh_certificate_initial(
@@ -14560,6 +14634,7 @@ async def _refresh_certificate_initial(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_refresh_certificate(
@@ -14677,6 +14752,7 @@ def __init__(self, *args, **kwargs) -> None:
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def get(
@@ -14779,6 +14855,7 @@ async def get(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _create_or_update_initial(
@@ -14988,6 +15065,7 @@ async def begin_create_or_update(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_create_or_update(
@@ -15094,6 +15172,7 @@ def get_long_running_output(pipeline_response):
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _update_initial(
@@ -15304,6 +15383,7 @@ async def begin_update(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_update(
@@ -15410,6 +15490,7 @@ def get_long_running_output(pipeline_response):
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _delete_initial(
@@ -15497,6 +15578,7 @@ async def _delete_initial(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_delete(
@@ -15584,6 +15666,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
def list(
@@ -15713,6 +15796,7 @@ async def get_next(next_link=None):
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def list_peering_passphrases(
@@ -15816,6 +15900,7 @@ async def list_peering_passphrases(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _pool_change_initial(
@@ -16023,6 +16108,7 @@ async def begin_pool_change(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_pool_change(
@@ -16130,6 +16216,7 @@ def get_long_running_output(pipeline_response):
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def _reset_smb_password_initial(
@@ -16218,6 +16305,7 @@ async def _reset_smb_password_initial(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
async def begin_reset_smb_password(
@@ -16291,6 +16379,9735 @@ def get_long_running_output(pipeline_response):
)
+class ElasticAccountsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`elastic_accounts` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(self, resource_group_name: str, account_name: str, **kwargs: Any) -> _models.ElasticAccount:
+ """Get the NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :return: ElasticAccount. The ElasticAccount is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticAccount
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticAccount] = kwargs.pop("cls", None)
+
+ _request = build_elastic_accounts_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticAccount, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: Union[_models.ElasticAccount, _types.ElasticAccount, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_accounts_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: _models.ElasticAccount,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticAccount]:
+ """Create or update the specified NetApp Elastic Account within the resource group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticAccount
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticAccount. The ElasticAccount is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: _types.ElasticAccount,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticAccount]:
+ """Create or update the specified NetApp Elastic Account within the resource group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticAccount
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticAccount. The ElasticAccount is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticAccount]:
+ """Create or update the specified NetApp Elastic Account within the resource group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticAccount. The ElasticAccount is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: Union[_models.ElasticAccount, _types.ElasticAccount, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticAccount]:
+ """Create or update the specified NetApp Elastic Account within the resource group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param body: Resource create parameters. Is either a ElasticAccount type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticAccount or ~azure.mgmt.netapp.types.ElasticAccount
+ or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticAccount. The ElasticAccount is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticAccount] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticAccount, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticAccount].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticAccount](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: Union[_models.ElasticAccountUpdate, _types.ElasticAccountUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_accounts_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: _models.ElasticAccountUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticAccount]:
+ """Patch the specified NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticAccountUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticAccount. The ElasticAccount is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: _types.ElasticAccountUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticAccount]:
+ """Patch the specified NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticAccountUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticAccount. The ElasticAccount is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticAccount]:
+ """Patch the specified NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticAccount. The ElasticAccount is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: Union[_models.ElasticAccountUpdate, _types.ElasticAccountUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticAccount]:
+ """Patch the specified NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param body: The resource properties to be updated. Is either a ElasticAccountUpdate type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticAccountUpdate or
+ ~azure.mgmt.netapp.types.ElasticAccountUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticAccount. The ElasticAccount is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticAccount] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticAccount, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticAccount].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticAccount](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(self, resource_group_name: str, account_name: str, **kwargs: Any) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_accounts_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(self, resource_group_name: str, account_name: str, **kwargs: Any) -> AsyncLROPoller[None]:
+ """Delete the specified NetApp elastic account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={"2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "accept"]},
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_resource_group(
+ self, resource_group_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticAccount"]:
+ """List and describe all NetApp elastic accounts in the resource group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :return: An iterator like instance of ElasticAccount
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticAccount]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_accounts_list_by_resource_group_request(
+ resource_group_name=resource_group_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticAccount],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={"2025-12-15-preview": ["api_version", "subscription_id", "accept"]},
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_subscription(self, **kwargs: Any) -> AsyncItemPaged["_models.ElasticAccount"]:
+ """List and describe all NetApp elastic accounts in the subscription.
+
+ :return: An iterator like instance of ElasticAccount
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticAccount]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_accounts_list_by_subscription_request(
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticAccount],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+
+class ElasticCapacityPoolsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`elastic_capacity_pools` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> _models.ElasticCapacityPool:
+ """Get the NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :return: ElasticCapacityPool. The ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticCapacityPool
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None)
+
+ _request = build_elastic_capacity_pools_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticCapacityPool, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ElasticCapacityPool, _types.ElasticCapacityPool, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_capacity_pools_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _models.ElasticCapacityPool,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Create or update the specified NetApp Elastic Capacity Pool within the resource group and
+ NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticCapacityPool
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _types.ElasticCapacityPool,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Create or update the specified NetApp Elastic Capacity Pool within the resource group and
+ NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticCapacityPool
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Create or update the specified NetApp Elastic Capacity Pool within the resource group and
+ NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ElasticCapacityPool, _types.ElasticCapacityPool, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Create or update the specified NetApp Elastic Capacity Pool within the resource group and
+ NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: Resource create parameters. Is either a ElasticCapacityPool type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticCapacityPool or
+ ~azure.mgmt.netapp.types.ElasticCapacityPool or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticCapacityPool, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticCapacityPool].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticCapacityPool](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ElasticCapacityPoolUpdate, _types.ElasticCapacityPoolUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_capacity_pools_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _models.ElasticCapacityPoolUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Patch the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticCapacityPoolUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _types.ElasticCapacityPoolUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Patch the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticCapacityPoolUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Patch the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ElasticCapacityPoolUpdate, _types.ElasticCapacityPoolUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Patch the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The resource properties to be updated. Is either a ElasticCapacityPoolUpdate type
+ or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticCapacityPoolUpdate or
+ ~azure.mgmt.netapp.types.ElasticCapacityPoolUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticCapacityPool, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticCapacityPool].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticCapacityPool](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "pool_name"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_capacity_pools_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "pool_name"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Delete the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticCapacityPool"]:
+ """List and describe all NetApp Elastic Capacity Pools in the Elastic NetApp Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :return: An iterator like instance of ElasticCapacityPool
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticCapacityPool]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_capacity_pools_list_by_elastic_account_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticCapacityPool],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _change_zone_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ChangeZoneRequest, _types.ChangeZoneRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_capacity_pools_change_zone_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_change_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _models.ChangeZoneRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Moves pool to another zone.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.models.ChangeZoneRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_change_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _types.ChangeZoneRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Moves pool to another zone.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.types.ChangeZoneRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_change_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Moves pool to another zone.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_change_zone(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ChangeZoneRequest, _types.ChangeZoneRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticCapacityPool]:
+ """Moves pool to another zone.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Is either a ChangeZoneRequest type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ChangeZoneRequest or
+ ~azure.mgmt.netapp.types.ChangeZoneRequest or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticCapacityPool. The
+ ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._change_zone_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticCapacityPool, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticCapacityPool].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticCapacityPool](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @overload
+ async def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _models.CheckElasticVolumeFilePathAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> _models.CheckElasticResourceAvailabilityResponse:
+ """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.models.CheckElasticVolumeFilePathAvailabilityRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse
+ is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _types.CheckElasticVolumeFilePathAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> _models.CheckElasticResourceAvailabilityResponse:
+ """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.types.CheckElasticVolumeFilePathAvailabilityRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse
+ is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> _models.CheckElasticResourceAvailabilityResponse:
+ """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse
+ is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[
+ _models.CheckElasticVolumeFilePathAvailabilityRequest,
+ _types.CheckElasticVolumeFilePathAvailabilityRequest,
+ IO[bytes],
+ ],
+ **kwargs: Any
+ ) -> _models.CheckElasticResourceAvailabilityResponse:
+ """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Is either a
+ CheckElasticVolumeFilePathAvailabilityRequest type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.CheckElasticVolumeFilePathAvailabilityRequest or
+ ~azure.mgmt.netapp.types.CheckElasticVolumeFilePathAvailabilityRequest or IO[bytes]
+ :return: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse
+ is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.CheckElasticResourceAvailabilityResponse] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_capacity_pools_check_volume_file_path_availability_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.CheckElasticResourceAvailabilityResponse, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+
+class ElasticVolumesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`elastic_volumes` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> _models.ElasticVolume:
+ """Get the details of the specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :return: ElasticVolume. The ElasticVolume is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticVolume
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None)
+
+ _request = build_elastic_volumes_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticVolume, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ElasticVolume, _types.ElasticVolume, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_volumes_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.ElasticVolume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolume
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.ElasticVolume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticVolume
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ElasticVolume, _types.ElasticVolume, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: Resource create parameters. Is either a ElasticVolume type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolume or ~azure.mgmt.netapp.types.ElasticVolume
+ or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticVolume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticVolume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticVolume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ElasticVolumeUpdate, _types.ElasticVolumeUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_volumes_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.ElasticVolumeUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Patch the specified elastic volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolumeUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.ElasticVolumeUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Patch the specified elastic volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticVolumeUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Patch the specified elastic volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ElasticVolumeUpdate, _types.ElasticVolumeUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Patch the specified elastic volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The resource properties to be updated. Is either a ElasticVolumeUpdate type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolumeUpdate or
+ ~azure.mgmt.netapp.types.ElasticVolumeUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticVolume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticVolume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticVolume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_volumes_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Delete the specified Elastic Volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_pool(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticVolume"]:
+ """List all Elastic Volumes within the Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :return: An iterator like instance of ElasticVolume
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticVolume]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_volumes_list_by_elastic_pool_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticVolume],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _revert_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ElasticVolumeRevert, _types.ElasticVolumeRevert, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_volumes_revert_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.ElasticVolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Revert an Elastic Volume to the snapshot specified in the body.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolumeRevert
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.ElasticVolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Revert an Elastic Volume to the snapshot specified in the body.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticVolumeRevert
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Revert an Elastic Volume to the snapshot specified in the body.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ElasticVolumeRevert, _types.ElasticVolumeRevert, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticVolume]:
+ """Revert an Elastic Volume to the snapshot specified in the body.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Is either a ElasticVolumeRevert type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolumeRevert or
+ ~azure.mgmt.netapp.types.ElasticVolumeRevert or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticVolume. The ElasticVolume is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._revert_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticVolume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticVolume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticVolume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+
+class ElasticSnapshotsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`elastic_snapshots` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "snapshot_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> _models.ElasticSnapshot:
+ """Get a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :return: ElasticSnapshot. The ElasticSnapshot is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticSnapshot
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticSnapshot] = kwargs.pop("cls", None)
+
+ _request = build_elastic_snapshots_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticSnapshot, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "snapshot_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.ElasticSnapshot, _types.ElasticSnapshot, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_snapshots_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: _models.ElasticSnapshot,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshot]:
+ """Create a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshot
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshot. The ElasticSnapshot is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: _types.ElasticSnapshot,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshot]:
+ """Create a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticSnapshot
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshot. The ElasticSnapshot is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshot]:
+ """Create a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshot. The ElasticSnapshot is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "snapshot_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.ElasticSnapshot, _types.ElasticSnapshot, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshot]:
+ """Create a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :param body: Resource create parameters. Is either a ElasticSnapshot type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshot or
+ ~azure.mgmt.netapp.types.ElasticSnapshot or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshot. The ElasticSnapshot is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticSnapshot] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticSnapshot, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticSnapshot].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticSnapshot](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "snapshot_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_snapshots_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "snapshot_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Delete a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_volume(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticSnapshot"]:
+ """List ElasticSnapshot resources by ElasticVolume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :return: An iterator like instance of ElasticSnapshot
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticSnapshot]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_snapshots_list_by_elastic_volume_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticSnapshot],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+
+class ElasticSnapshotPoliciesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`elastic_snapshot_policies` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
+ ) -> _models.ElasticSnapshotPolicy:
+ """Get a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :return: ElasticSnapshotPolicy. The ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticSnapshotPolicy
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticSnapshotPolicy] = kwargs.pop("cls", None)
+
+ _request = build_elastic_snapshot_policies_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: Union[_models.ElasticSnapshotPolicy, _types.ElasticSnapshotPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_snapshot_policies_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: _models.ElasticSnapshotPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshotPolicy]:
+ """Create a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshotPolicy
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshotPolicy. The
+ ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: _types.ElasticSnapshotPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshotPolicy]:
+ """Create a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticSnapshotPolicy
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshotPolicy. The
+ ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshotPolicy]:
+ """Create a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshotPolicy. The
+ ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: Union[_models.ElasticSnapshotPolicy, _types.ElasticSnapshotPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshotPolicy]:
+ """Create a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: Resource create parameters. Is either a ElasticSnapshotPolicy type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshotPolicy or
+ ~azure.mgmt.netapp.types.ElasticSnapshotPolicy or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshotPolicy. The
+ ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticSnapshotPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticSnapshotPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticSnapshotPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: Union[_models.ElasticSnapshotPolicyUpdate, _types.ElasticSnapshotPolicyUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_snapshot_policies_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: _models.ElasticSnapshotPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshotPolicy]:
+ """Update a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshotPolicy. The
+ ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: _types.ElasticSnapshotPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshotPolicy]:
+ """Update a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticSnapshotPolicyUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshotPolicy. The
+ ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshotPolicy]:
+ """Update a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshotPolicy. The
+ ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ snapshot_policy_name: str,
+ body: Union[_models.ElasticSnapshotPolicyUpdate, _types.ElasticSnapshotPolicyUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticSnapshotPolicy]:
+ """Update a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: The resource properties to be updated. Is either a ElasticSnapshotPolicyUpdate
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdate or
+ ~azure.mgmt.netapp.types.ElasticSnapshotPolicyUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticSnapshotPolicy. The
+ ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticSnapshotPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticSnapshotPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticSnapshotPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_snapshot_policies_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Delete a ElasticSnapshotPolicy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticSnapshotPolicy"]:
+ """List ElasticSnapshotPolicy resources by ElasticAccount.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :return: An iterator like instance of ElasticSnapshotPolicy
+ :rtype:
+ ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticSnapshotPolicy]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_snapshot_policies_list_by_elastic_account_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticSnapshotPolicy],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_elastic_volumes(
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticVolume"]:
+ """Get elastic volumes associated with Elastic Snapshot Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :return: An iterator like instance of ElasticVolume
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticVolume]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_snapshot_policies_list_elastic_volumes_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticVolume],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+
+class ElasticBackupVaultsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`elastic_backup_vaults` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ ) -> _models.ElasticBackupVault:
+ """Get the Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :return: ElasticBackupVault. The ElasticBackupVault is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticBackupVault
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticBackupVault] = kwargs.pop("cls", None)
+
+ _request = build_elastic_backup_vaults_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticBackupVault, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: Union[_models.ElasticBackupVault, _types.ElasticBackupVault, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_backup_vaults_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: _models.ElasticBackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupVault]:
+ """Create or update the specified Elastic Backup Vault in the Elastic NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupVault
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupVault. The ElasticBackupVault
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: _types.ElasticBackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupVault]:
+ """Create or update the specified Elastic Backup Vault in the Elastic NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackupVault
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupVault. The ElasticBackupVault
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupVault]:
+ """Create or update the specified Elastic Backup Vault in the Elastic NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupVault. The ElasticBackupVault
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: Union[_models.ElasticBackupVault, _types.ElasticBackupVault, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupVault]:
+ """Create or update the specified Elastic Backup Vault in the Elastic NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: Resource create parameters. Is either a ElasticBackupVault type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupVault or
+ ~azure.mgmt.netapp.types.ElasticBackupVault or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticBackupVault. The ElasticBackupVault
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticBackupVault] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticBackupVault, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticBackupVault].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticBackupVault](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: Union[_models.ElasticBackupVaultUpdate, _types.ElasticBackupVaultUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_backup_vaults_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: _models.ElasticBackupVaultUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupVault]:
+ """Patch the specified NetApp Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupVaultUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupVault. The ElasticBackupVault
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: _types.ElasticBackupVaultUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupVault]:
+ """Patch the specified NetApp Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackupVaultUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupVault. The ElasticBackupVault
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupVault]:
+ """Patch the specified NetApp Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupVault. The ElasticBackupVault
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: Union[_models.ElasticBackupVaultUpdate, _types.ElasticBackupVaultUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupVault]:
+ """Patch the specified NetApp Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: The resource properties to be updated. Is either a ElasticBackupVaultUpdate type
+ or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupVaultUpdate or
+ ~azure.mgmt.netapp.types.ElasticBackupVaultUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticBackupVault. The ElasticBackupVault
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticBackupVault] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticBackupVault, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticBackupVault].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticBackupVault](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_backup_vaults_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Delete the specified Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticBackupVault"]:
+ """List and describe all Elastic Backup Vaults in the elastic account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :return: An iterator like instance of ElasticBackupVault
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticBackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticBackupVault]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_backup_vaults_list_by_elastic_account_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticBackupVault],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+
+class ElasticBackupPoliciesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`elastic_backup_policies` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
+ ) -> _models.ElasticBackupPolicy:
+ """Get the Elastic Backup Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :return: ElasticBackupPolicy. The ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticBackupPolicy
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticBackupPolicy] = kwargs.pop("cls", None)
+
+ _request = build_elastic_backup_policies_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticBackupPolicy, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: Union[_models.ElasticBackupPolicy, _types.ElasticBackupPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_backup_policies_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: _models.ElasticBackupPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupPolicy]:
+ """Create or update the specified Elastic Backup Policy in the NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupPolicy
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupPolicy. The
+ ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: _types.ElasticBackupPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupPolicy]:
+ """Create or update the specified Elastic Backup Policy in the NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackupPolicy
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupPolicy. The
+ ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupPolicy]:
+ """Create or update the specified Elastic Backup Policy in the NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupPolicy. The
+ ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: Union[_models.ElasticBackupPolicy, _types.ElasticBackupPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupPolicy]:
+ """Create or update the specified Elastic Backup Policy in the NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: Resource create parameters. Is either a ElasticBackupPolicy type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupPolicy or
+ ~azure.mgmt.netapp.types.ElasticBackupPolicy or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticBackupPolicy. The
+ ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticBackupPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticBackupPolicy, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticBackupPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticBackupPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: Union[_models.ElasticBackupPolicyUpdate, _types.ElasticBackupPolicyUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_backup_policies_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: _models.ElasticBackupPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupPolicy]:
+ """Patch the specified NetApp Elastic Backup Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupPolicyUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupPolicy. The
+ ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: _types.ElasticBackupPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupPolicy]:
+ """Patch the specified NetApp Elastic Backup Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackupPolicyUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupPolicy. The
+ ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupPolicy]:
+ """Patch the specified NetApp Elastic Backup Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackupPolicy. The
+ ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: Union[_models.ElasticBackupPolicyUpdate, _types.ElasticBackupPolicyUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackupPolicy]:
+ """Patch the specified NetApp Elastic Backup Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: The resource properties to be updated. Is either a ElasticBackupPolicyUpdate type
+ or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupPolicyUpdate or
+ ~azure.mgmt.netapp.types.ElasticBackupPolicyUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticBackupPolicy. The
+ ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticBackupPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticBackupPolicy, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticBackupPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticBackupPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_backup_policies_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Delete the specified Elastic Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticBackupPolicy"]:
+ """List and describe all Elastic Backup Policies in the elastic account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :return: An iterator like instance of ElasticBackupPolicy
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticBackupPolicy]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_backup_policies_list_by_elastic_account_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticBackupPolicy],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+
+class ElasticBackupsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`elastic_backups` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "backup_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ ) -> _models.ElasticBackup:
+ """Get the specified Elastic Backup under Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :return: ElasticBackup. The ElasticBackup is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticBackup
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticBackup] = kwargs.pop("cls", None)
+
+ _request = build_elastic_backups_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticBackup, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "backup_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.ElasticBackup, _types.ElasticBackup, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_backups_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _models.ElasticBackup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackup]:
+ """Create an elastic backup under the elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackup
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackup. The ElasticBackup is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _types.ElasticBackup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackup]:
+ """Create an elastic backup under the elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackup
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackup. The ElasticBackup is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackup]:
+ """Create an elastic backup under the elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackup. The ElasticBackup is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "backup_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.ElasticBackup, _types.ElasticBackup, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackup]:
+ """Create an elastic backup under the elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: Resource create parameters. Is either a ElasticBackup type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackup or ~azure.mgmt.netapp.types.ElasticBackup
+ or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticBackup. The ElasticBackup is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticBackup] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticBackup, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticBackup].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticBackup](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "backup_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.ElasticBackup, _types.ElasticBackup, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_backups_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _models.ElasticBackup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackup]:
+ """Patch an elastic Backup under the Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackup
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackup. The ElasticBackup is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _types.ElasticBackup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackup]:
+ """Patch an elastic Backup under the Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackup
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackup. The ElasticBackup is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackup]:
+ """Patch an elastic Backup under the Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ElasticBackup. The ElasticBackup is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "backup_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.ElasticBackup, _types.ElasticBackup, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ElasticBackup]:
+ """Patch an elastic Backup under the Elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: The resource properties to be updated. Is either a ElasticBackup type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackup or ~azure.mgmt.netapp.types.ElasticBackup
+ or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ElasticBackup. The ElasticBackup is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticBackup] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticBackup, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ElasticBackup].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ElasticBackup](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "backup_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_backups_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "backup_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Delete a ElasticBackup.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_vault_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_vault(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ElasticBackup"]:
+ """List all elastic backups Under an elastic Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :return: An iterator like instance of ElasticBackup
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ElasticBackup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticBackup]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_backups_list_by_vault_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticBackup],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+
+class ActiveDirectoryConfigsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.aio.NetAppManagementClient`'s
+ :attr:`active_directory_configs` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def get(
+ self, resource_group_name: str, active_directory_config_name: str, **kwargs: Any
+ ) -> _models.ActiveDirectoryConfig:
+ """Get the details of the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :return: ActiveDirectoryConfig. The ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ActiveDirectoryConfig
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ActiveDirectoryConfig] = kwargs.pop("cls", None)
+
+ _request = build_active_directory_configs_get_request(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ActiveDirectoryConfig, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: Union[_models.ActiveDirectoryConfig, _types.ActiveDirectoryConfig, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_active_directory_configs_create_or_update_request(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: _models.ActiveDirectoryConfig,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ActiveDirectoryConfig]:
+ """Create or update the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ActiveDirectoryConfig
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ActiveDirectoryConfig. The
+ ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: _types.ActiveDirectoryConfig,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ActiveDirectoryConfig]:
+ """Create or update the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ActiveDirectoryConfig
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ActiveDirectoryConfig. The
+ ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ActiveDirectoryConfig]:
+ """Create or update the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ActiveDirectoryConfig. The
+ ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: Union[_models.ActiveDirectoryConfig, _types.ActiveDirectoryConfig, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ActiveDirectoryConfig]:
+ """Create or update the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: Resource create parameters. Is either a ActiveDirectoryConfig type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ActiveDirectoryConfig or
+ ~azure.mgmt.netapp.types.ActiveDirectoryConfig or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ActiveDirectoryConfig. The
+ ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ActiveDirectoryConfig] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ActiveDirectoryConfig, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ActiveDirectoryConfig].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ActiveDirectoryConfig](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: Union[_models.ActiveDirectoryConfigUpdate, _types.ActiveDirectoryConfigUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_active_directory_configs_update_request(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: _models.ActiveDirectoryConfigUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ActiveDirectoryConfig]:
+ """Patch the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ActiveDirectoryConfigUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ActiveDirectoryConfig. The
+ ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: _types.ActiveDirectoryConfigUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ActiveDirectoryConfig]:
+ """Patch the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ActiveDirectoryConfigUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ActiveDirectoryConfig. The
+ ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ActiveDirectoryConfig]:
+ """Patch the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns ActiveDirectoryConfig. The
+ ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: Union[_models.ActiveDirectoryConfigUpdate, _types.ActiveDirectoryConfigUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ActiveDirectoryConfig]:
+ """Patch the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: The resource properties to be updated. Is either a ActiveDirectoryConfigUpdate
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ActiveDirectoryConfigUpdate or
+ ~azure.mgmt.netapp.types.ActiveDirectoryConfigUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns ActiveDirectoryConfig. The
+ ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ActiveDirectoryConfig] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ActiveDirectoryConfig, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ActiveDirectoryConfig].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ActiveDirectoryConfig](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def _delete_initial(
+ self, resource_group_name: str, active_directory_config_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_active_directory_configs_delete_request(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ async def begin_delete(
+ self, resource_group_name: str, active_directory_config_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Delete the specified Active Directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={"2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "accept"]},
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_resource_group(
+ self, resource_group_name: str, **kwargs: Any
+ ) -> AsyncItemPaged["_models.ActiveDirectoryConfig"]:
+ """List all active directory configurations within the resource group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :return: An iterator like instance of ActiveDirectoryConfig
+ :rtype:
+ ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ActiveDirectoryConfig]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_active_directory_configs_list_by_resource_group_request(
+ resource_group_name=resource_group_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ActiveDirectoryConfig],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={"2025-12-15-preview": ["api_version", "subscription_id", "accept"]},
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_subscription(self, **kwargs: Any) -> AsyncItemPaged["_models.ActiveDirectoryConfig"]:
+ """List all active directory configurations within the subscription.
+
+ :return: An iterator like instance of ActiveDirectoryConfig
+ :rtype:
+ ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ActiveDirectoryConfig]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_active_directory_configs_list_by_subscription_request(
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ActiveDirectoryConfig],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+
class NetAppResourceQuotaLimitsOperations:
"""
.. warning::
@@ -16979,9 +26796,9 @@ def get_long_running_output(pipeline_response):
)
@api_version_validation(
- method_added_on="2026-01-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2026-01-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
@@ -16990,7 +26807,13 @@ def get_long_running_output(pipeline_response):
"accept",
]
},
- api_versions_list=["2026-01-01", "2026-03-01", "2026-04-01", "2026-05-01"],
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
)
async def _update_initial(
self,
@@ -17153,9 +26976,9 @@ async def begin_update(
@distributed_trace_async
@api_version_validation(
- method_added_on="2026-01-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2026-01-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
@@ -17164,7 +26987,13 @@ async def begin_update(
"accept",
]
},
- api_versions_list=["2026-01-01", "2026-03-01", "2026-04-01", "2026-05-01"],
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
)
async def begin_update(
self,
@@ -18285,6 +28114,142 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ @api_version_validation(
+ method_added_on="2026-04-15-preview",
+ params_added_on={
+ "2026-04-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name"]
+ },
+ api_versions_list=["2026-04-15-preview", "2026-05-15-preview"],
+ )
+ async def _refresh_ldap_bind_password_initial(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_accounts_refresh_ldap_bind_password_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ @api_version_validation(
+ method_added_on="2026-04-15-preview",
+ params_added_on={
+ "2026-04-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name"]
+ },
+ api_versions_list=["2026-04-15-preview", "2026-05-15-preview"],
+ )
+ async def begin_refresh_ldap_bind_password(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Refresh LDAP Bind DN password by fetching the latest password from Azure Key Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :return: An instance of AsyncLROPoller that returns None
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._refresh_ldap_bind_password_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
class BackupsUnderAccountOperations:
"""
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/__init__.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/__init__.py
index 039165f11857..8db65dbdfab4 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/__init__.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/__init__.py
@@ -16,7 +16,12 @@
from ._models import ( # type: ignore
AccountEncryption,
AccountProperties,
+ AccountPropertiesPatch,
ActiveDirectory,
+ ActiveDirectoryConfig,
+ ActiveDirectoryConfigProperties,
+ ActiveDirectoryConfigUpdate,
+ ActiveDirectoryConfigUpdateProperties,
AuthorizeRequest,
AzureKeyVaultDetails,
Backup,
@@ -32,6 +37,8 @@
BackupVaultPatch,
BackupVaultProperties,
BackupsMigrationRequest,
+ BindPasswordAkvConfig,
+ BindPasswordAkvConfigPatch,
BreakFileLocksRequest,
BreakReplicationRequest,
Bucket,
@@ -52,7 +59,10 @@
CapacityPoolPatch,
CertificateAkvDetails,
ChangeKeyVault,
+ ChangeZoneRequest,
CheckAvailabilityResponse,
+ CheckElasticResourceAvailabilityResponse,
+ CheckElasticVolumeFilePathAvailabilityRequest,
CifsUser,
ClusterPeerCommandResponse,
ClusterPeerCommandResponseProperties,
@@ -60,8 +70,57 @@
DailySchedule,
DestinationReplication,
Dimension,
+ ElasticAccount,
+ ElasticAccountProperties,
+ ElasticAccountUpdate,
+ ElasticAccountUpdateProperties,
+ ElasticBackup,
+ ElasticBackupPolicy,
+ ElasticBackupPolicyProperties,
+ ElasticBackupPolicyUpdate,
+ ElasticBackupPolicyUpdateProperties,
+ ElasticBackupProperties,
+ ElasticBackupVault,
+ ElasticBackupVaultProperties,
+ ElasticBackupVaultUpdate,
+ ElasticCapacityPool,
+ ElasticCapacityPoolProperties,
+ ElasticCapacityPoolUpdate,
+ ElasticCapacityPoolUpdateProperties,
+ ElasticEncryption,
+ ElasticEncryptionConfiguration,
+ ElasticEncryptionIdentity,
+ ElasticExportPolicy,
+ ElasticExportPolicyRule,
+ ElasticKeyVaultProperties,
+ ElasticMountTargetProperties,
+ ElasticSmbPatchProperties,
+ ElasticSmbProperties,
+ ElasticSnapshot,
+ ElasticSnapshotPolicy,
+ ElasticSnapshotPolicyDailySchedule,
+ ElasticSnapshotPolicyHourlySchedule,
+ ElasticSnapshotPolicyMonthlySchedule,
+ ElasticSnapshotPolicyProperties,
+ ElasticSnapshotPolicyUpdate,
+ ElasticSnapshotPolicyUpdateProperties,
+ ElasticSnapshotPolicyWeeklySchedule,
+ ElasticSnapshotProperties,
+ ElasticVolume,
+ ElasticVolumeBackupProperties,
+ ElasticVolumeDataProtectionPatchProperties,
+ ElasticVolumeDataProtectionProperties,
+ ElasticVolumeProperties,
+ ElasticVolumeRevert,
+ ElasticVolumeSnapshotProperties,
+ ElasticVolumeUpdate,
+ ElasticVolumeUpdateProperties,
EncryptionIdentity,
EncryptionTransitionRequest,
+ EntraIdAkvConfig,
+ EntraIdAkvConfigPatch,
+ EntraIdConfig,
+ EntraIdConfigPatch,
ErrorAdditionalInfo,
ErrorDetail,
ErrorResponse,
@@ -75,6 +134,8 @@
HourlySchedule,
KeyVaultPrivateEndpoint,
KeyVaultProperties,
+ LdapConfiguration,
+ LdapConfigurationPatch,
LdapSearchScopeOpt,
ListQuotaReportResponse,
ListQuotaReportResult,
@@ -124,6 +185,9 @@
Resource,
ResourceNameAvailabilityRequest,
RestoreStatus,
+ SecretPassword,
+ SecretPasswordIdentity,
+ SecretPasswordKeyVaultProperties,
ServiceSpecification,
SmbSettings,
Snapshot,
@@ -182,12 +246,15 @@
ApplicationType,
AvsDataStore,
BackupType,
+ BindAuthenticationLevel,
BreakthroughMode,
BucketPatchPermissions,
BucketPermissions,
CacheFileAccessLogs,
CacheLifeCycleState,
CacheProvisioningState,
+ CheckElasticResourceAvailabilityReason,
+ CheckElasticResourceAvailabilityStatus,
CheckNameResourceTypes,
CheckQuotaNameResourceTypes,
ChownMode,
@@ -196,7 +263,22 @@
CoolAccessTieringPolicy,
CreatedByType,
CredentialsStatus,
+ DayOfWeek,
DesiredRansomwareProtectionState,
+ ElasticBackupPolicyState,
+ ElasticBackupType,
+ ElasticKeyVaultStatus,
+ ElasticNfsv3Access,
+ ElasticNfsv4Access,
+ ElasticPoolEncryptionKeySource,
+ ElasticProtocolType,
+ ElasticResourceAvailabilityStatus,
+ ElasticRootAccess,
+ ElasticServiceLevel,
+ ElasticSmbEncryption,
+ ElasticUnixAccessRule,
+ ElasticVolumePolicyEnforcement,
+ ElasticVolumeRestorationState,
EnableSubvolumes,
EnableWriteBackState,
EncryptionKeySource,
@@ -211,6 +293,7 @@
KerberosState,
KeySource,
KeyVaultStatus,
+ LargeVolumeType,
LdapServerType,
LdapState,
ManagedServiceIdentityType,
@@ -221,6 +304,7 @@
NetworkFeatures,
NetworkSiblingSetProvisioningState,
OnCertificateConflictAction,
+ PolicyStatus,
ProtocolTypes,
QosType,
QuotaType,
@@ -236,10 +320,13 @@
SmbAccessBasedEnumeration,
SmbEncryptionState,
SmbNonBrowsable,
+ SnapshotDirectoryVisibility,
+ SnapshotUsage,
VolumeBackupRelationshipStatus,
VolumeLanguage,
VolumeReplicationRelationshipStatus,
VolumeRestoreRelationshipStatus,
+ VolumeSize,
VolumeStorageToNetworkProximity,
)
from ._patch import __all__ as _patch_all
@@ -249,7 +336,12 @@
__all__ = [
"AccountEncryption",
"AccountProperties",
+ "AccountPropertiesPatch",
"ActiveDirectory",
+ "ActiveDirectoryConfig",
+ "ActiveDirectoryConfigProperties",
+ "ActiveDirectoryConfigUpdate",
+ "ActiveDirectoryConfigUpdateProperties",
"AuthorizeRequest",
"AzureKeyVaultDetails",
"Backup",
@@ -265,6 +357,8 @@
"BackupVaultPatch",
"BackupVaultProperties",
"BackupsMigrationRequest",
+ "BindPasswordAkvConfig",
+ "BindPasswordAkvConfigPatch",
"BreakFileLocksRequest",
"BreakReplicationRequest",
"Bucket",
@@ -285,7 +379,10 @@
"CapacityPoolPatch",
"CertificateAkvDetails",
"ChangeKeyVault",
+ "ChangeZoneRequest",
"CheckAvailabilityResponse",
+ "CheckElasticResourceAvailabilityResponse",
+ "CheckElasticVolumeFilePathAvailabilityRequest",
"CifsUser",
"ClusterPeerCommandResponse",
"ClusterPeerCommandResponseProperties",
@@ -293,8 +390,57 @@
"DailySchedule",
"DestinationReplication",
"Dimension",
+ "ElasticAccount",
+ "ElasticAccountProperties",
+ "ElasticAccountUpdate",
+ "ElasticAccountUpdateProperties",
+ "ElasticBackup",
+ "ElasticBackupPolicy",
+ "ElasticBackupPolicyProperties",
+ "ElasticBackupPolicyUpdate",
+ "ElasticBackupPolicyUpdateProperties",
+ "ElasticBackupProperties",
+ "ElasticBackupVault",
+ "ElasticBackupVaultProperties",
+ "ElasticBackupVaultUpdate",
+ "ElasticCapacityPool",
+ "ElasticCapacityPoolProperties",
+ "ElasticCapacityPoolUpdate",
+ "ElasticCapacityPoolUpdateProperties",
+ "ElasticEncryption",
+ "ElasticEncryptionConfiguration",
+ "ElasticEncryptionIdentity",
+ "ElasticExportPolicy",
+ "ElasticExportPolicyRule",
+ "ElasticKeyVaultProperties",
+ "ElasticMountTargetProperties",
+ "ElasticSmbPatchProperties",
+ "ElasticSmbProperties",
+ "ElasticSnapshot",
+ "ElasticSnapshotPolicy",
+ "ElasticSnapshotPolicyDailySchedule",
+ "ElasticSnapshotPolicyHourlySchedule",
+ "ElasticSnapshotPolicyMonthlySchedule",
+ "ElasticSnapshotPolicyProperties",
+ "ElasticSnapshotPolicyUpdate",
+ "ElasticSnapshotPolicyUpdateProperties",
+ "ElasticSnapshotPolicyWeeklySchedule",
+ "ElasticSnapshotProperties",
+ "ElasticVolume",
+ "ElasticVolumeBackupProperties",
+ "ElasticVolumeDataProtectionPatchProperties",
+ "ElasticVolumeDataProtectionProperties",
+ "ElasticVolumeProperties",
+ "ElasticVolumeRevert",
+ "ElasticVolumeSnapshotProperties",
+ "ElasticVolumeUpdate",
+ "ElasticVolumeUpdateProperties",
"EncryptionIdentity",
"EncryptionTransitionRequest",
+ "EntraIdAkvConfig",
+ "EntraIdAkvConfigPatch",
+ "EntraIdConfig",
+ "EntraIdConfigPatch",
"ErrorAdditionalInfo",
"ErrorDetail",
"ErrorResponse",
@@ -308,6 +454,8 @@
"HourlySchedule",
"KeyVaultPrivateEndpoint",
"KeyVaultProperties",
+ "LdapConfiguration",
+ "LdapConfigurationPatch",
"LdapSearchScopeOpt",
"ListQuotaReportResponse",
"ListQuotaReportResult",
@@ -357,6 +505,9 @@
"Resource",
"ResourceNameAvailabilityRequest",
"RestoreStatus",
+ "SecretPassword",
+ "SecretPasswordIdentity",
+ "SecretPasswordKeyVaultProperties",
"ServiceSpecification",
"SmbSettings",
"Snapshot",
@@ -412,12 +563,15 @@
"ApplicationType",
"AvsDataStore",
"BackupType",
+ "BindAuthenticationLevel",
"BreakthroughMode",
"BucketPatchPermissions",
"BucketPermissions",
"CacheFileAccessLogs",
"CacheLifeCycleState",
"CacheProvisioningState",
+ "CheckElasticResourceAvailabilityReason",
+ "CheckElasticResourceAvailabilityStatus",
"CheckNameResourceTypes",
"CheckQuotaNameResourceTypes",
"ChownMode",
@@ -426,7 +580,22 @@
"CoolAccessTieringPolicy",
"CreatedByType",
"CredentialsStatus",
+ "DayOfWeek",
"DesiredRansomwareProtectionState",
+ "ElasticBackupPolicyState",
+ "ElasticBackupType",
+ "ElasticKeyVaultStatus",
+ "ElasticNfsv3Access",
+ "ElasticNfsv4Access",
+ "ElasticPoolEncryptionKeySource",
+ "ElasticProtocolType",
+ "ElasticResourceAvailabilityStatus",
+ "ElasticRootAccess",
+ "ElasticServiceLevel",
+ "ElasticSmbEncryption",
+ "ElasticUnixAccessRule",
+ "ElasticVolumePolicyEnforcement",
+ "ElasticVolumeRestorationState",
"EnableSubvolumes",
"EnableWriteBackState",
"EncryptionKeySource",
@@ -441,6 +610,7 @@
"KerberosState",
"KeySource",
"KeyVaultStatus",
+ "LargeVolumeType",
"LdapServerType",
"LdapState",
"ManagedServiceIdentityType",
@@ -451,6 +621,7 @@
"NetworkFeatures",
"NetworkSiblingSetProvisioningState",
"OnCertificateConflictAction",
+ "PolicyStatus",
"ProtocolTypes",
"QosType",
"QuotaType",
@@ -466,10 +637,13 @@
"SmbAccessBasedEnumeration",
"SmbEncryptionState",
"SmbNonBrowsable",
+ "SnapshotDirectoryVisibility",
+ "SnapshotUsage",
"VolumeBackupRelationshipStatus",
"VolumeLanguage",
"VolumeReplicationRelationshipStatus",
"VolumeRestoreRelationshipStatus",
+ "VolumeSize",
"VolumeStorageToNetworkProximity",
]
__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/_enums.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/_enums.py
index 6645c020c9b5..f81209354aaa 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/_enums.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/_enums.py
@@ -1,3 +1,4 @@
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -81,6 +82,15 @@ class BackupType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Scheduled backup."""
+class BindAuthenticationLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """The authentication level to use when binding to the LDAP server."""
+
+ ANONYMOUS = "Anonymous"
+ """Anonymous bind i.e. no credentials provided."""
+ SIMPLE = "Simple"
+ """Simple bind i.e. plain text credentials provided."""
+
+
class BreakthroughMode(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Specifies whether the volume operates in Breakthrough Mode. When set to 'Enabled', the volume
runs on the resources configured for this mode, delivering improved performance and higher
@@ -159,6 +169,24 @@ class CacheProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Resource creation was canceled."""
+class CheckElasticResourceAvailabilityReason(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Availability reason."""
+
+ INVALID = "Invalid"
+ """Value indicating the name provided does not match Azure NetApp Files naming requirements."""
+ ALREADY_EXISTS = "AlreadyExists"
+ """Value indicating the name is already in use and is therefore unavailable."""
+
+
+class CheckElasticResourceAvailabilityStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Availability status."""
+
+ TRUE = "True"
+ """Value indicating the name is valid and available."""
+ FALSE = "False"
+ """Value indicating the the name is invalid, unavailable, or both."""
+
+
class CheckNameResourceTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Resource type used for verification."""
@@ -285,6 +313,25 @@ class CredentialsStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
unexpired."""
+class DayOfWeek(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Day of the week."""
+
+ SUNDAY = "Sunday"
+ """Take a snapshot each Sunday."""
+ MONDAY = "Monday"
+ """Take a snapshot each Monday."""
+ TUESDAY = "Tuesday"
+ """Take a snapshot each Tuesday."""
+ WEDNESDAY = "Wednesday"
+ """Take a snapshot each Wednesday."""
+ THURSDAY = "Thursday"
+ """Take a snapshot each Thursday."""
+ FRIDAY = "Friday"
+ """Take a snapshot each Friday."""
+ SATURDAY = "Saturday"
+ """Take a snapshot each Saturday."""
+
+
class DesiredRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""The desired state of the Advanced Ransomware Protection feature."""
@@ -294,6 +341,142 @@ class DesiredRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumM
"""Advanced Ransomware Protection is enabled."""
+class ElasticBackupPolicyState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Elastic Backup Policy state."""
+
+ ENABLED = "Enabled"
+ """Value indicating the policy is enabled."""
+ DISABLED = "Disabled"
+ """Value indicating the policy is disabled."""
+
+
+class ElasticBackupType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Type of backup."""
+
+ MANUAL = "Manual"
+ """Manual backup type."""
+ SCHEDULED = "Scheduled"
+ """Scheduled backup type."""
+
+
+class ElasticKeyVaultStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """KeyVault status."""
+
+ CREATED = "Created"
+ """KeyVault connection created but not in use."""
+ IN_USE = "InUse"
+ """KeyVault connection in use by SMB Volume."""
+ DELETED = "Deleted"
+ """KeyVault connection Deleted."""
+ ERROR = "Error"
+ """Error with the KeyVault connection."""
+ UPDATING = "Updating"
+ """KeyVault connection Updating."""
+
+
+class ElasticNfsv3Access(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """NFSv3 access."""
+
+ ENABLED = "Enabled"
+ """Clients can connect to the volume using the NFSv3 protocol."""
+ DISABLED = "Disabled"
+ """Clients can't connect to the volume using the NFSv3 protocol."""
+
+
+class ElasticNfsv4Access(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """NFSv4 access."""
+
+ ENABLED = "Enabled"
+ """Clients can connect to the volume using the NFSv4 protocol."""
+ DISABLED = "Disabled"
+ """Clients can't connect to the volume using the NFSv4 protocol."""
+
+
+class ElasticPoolEncryptionKeySource(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Pool Encryption Key Source."""
+
+ NET_APP = "NetApp"
+ """Represents the encryption key source of Elastic pool is Microsoft.NetApp."""
+ KEY_VAULT = "KeyVault"
+ """Represents the encryption key source of Elastic pool is Microsoft.KeyVault."""
+
+
+class ElasticProtocolType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Protocol types for elastic volume."""
+
+ NF_SV3 = "NFSv3"
+ """NFSv3 protocol type."""
+ NF_SV4 = "NFSv4"
+ """NFSv4 protocol type."""
+ SMB = "SMB"
+ """SMB/CIFS protocol type."""
+
+
+class ElasticResourceAvailabilityStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Current availability status of the resource."""
+
+ ONLINE = "Online"
+ """The resource is currently Online and accessible."""
+ OFFLINE = "Offline"
+ """The resource is currently Offline and not accessible."""
+
+
+class ElasticRootAccess(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Root access."""
+
+ ENABLED = "Enabled"
+ """Root user access is enabled for clients affected by this rule."""
+ DISABLED = "Disabled"
+ """Root user access is disabled for clients affected by this rule."""
+
+
+class ElasticServiceLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Service level for elastic capacity pool."""
+
+ ZONE_REDUNDANT = "ZoneRedundant"
+ """Zone redundant storage service level."""
+
+
+class ElasticSmbEncryption(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """SMB encryption."""
+
+ ENABLED = "Enabled"
+ """Value indicating the SMB encryption is enabled."""
+ DISABLED = "Disabled"
+ """Value indicating the SMB encryption is disabled."""
+
+
+class ElasticUnixAccessRule(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Unix access rule."""
+
+ READ_ONLY = "ReadOnly"
+ """Clients connecting with this rule will only have read access to the volume."""
+ READ_WRITE = "ReadWrite"
+ """Clients connecting with this rule will have full read and write access to the volume."""
+ NO_ACCESS = "NoAccess"
+ """Clients connecting with this rule will have no access to the volume."""
+
+
+class ElasticVolumePolicyEnforcement(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Policy enforcement."""
+
+ ENFORCED = "Enforced"
+ """Value indicating the policy is enforced on the volume."""
+ NOT_ENFORCED = "NotEnforced"
+ """Value indicating the policy is not enforced on the volume."""
+
+
+class ElasticVolumeRestorationState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """The current state of the restoration process."""
+
+ RESTORING = "Restoring"
+ """Value indicating that the volume is currently restoring."""
+ RESTORED = "Restored"
+ """Value indicating that the volume is restored."""
+ FAILED = "Failed"
+ """Value indicating that the volume restore has failed."""
+
+
class EnableSubvolumes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Flag indicating whether subvolume operations are enabled on the volume Deprecated. This type
will be removed in a future API version.
@@ -452,6 +635,21 @@ class KeyVaultStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""KeyVault connection Updating."""
+class LargeVolumeType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Specifies the type of the Large Volume. When set to 'LargeVolume', the large volume is created
+ with standard configuration. If it is set to 'ExtraLargeVolume7Dot2PiB', the extra large volume
+ is created with higher capacity limit 7.2PiB with cool access enabled, delivering higher
+ capacity limit with lower costs.
+ """
+
+ LARGE_VOLUME = "LargeVolume"
+ """The large volume is created with standard configuration that provides standard performance and
+ throughput."""
+ EXTRA_LARGE_VOLUME7_DOT2_PI_B = "PremExtraLargeVolume7Dot2PiB"
+ """The extra large volume is created with higher volume capacity limit 7.2PiB with cool access
+ enabled, delivering higher capacity limit with lower costs."""
+
+
class LdapServerType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""The type of the LDAP server."""
@@ -578,6 +776,15 @@ class OnCertificateConflictAction(str, Enum, metaclass=CaseInsensitiveEnumMeta):
existing certificate will continue to be in use."""
+class PolicyStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Policy status."""
+
+ ENABLED = "Enabled"
+ """Value indicating the policy is enabled."""
+ DISABLED = "Disabled"
+ """Value indicating the policy is disabled."""
+
+
class ProtocolTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Set of supported protocol types, which include NFSv3, NFSv4 and SMB protocol."""
@@ -751,6 +958,26 @@ class SmbNonBrowsable(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""smbNonBrowsable share setting is enabled."""
+class SnapshotDirectoryVisibility(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Controls the visibility of the Elastic Volume's read-only snapshot directory, which provides
+ access to each of the volume's snapshots.
+ """
+
+ HIDDEN = "Hidden"
+ """Value indicating the read-only snapshot directory is not visible."""
+ VISIBLE = "Visible"
+ """Value indicating the read-only snapshot directory is visible."""
+
+
+class SnapshotUsage(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Snapshot usage for backup."""
+
+ USE_EXISTING_SNAPSHOT = "UseExistingSnapshot"
+ """Value indicating an existing snapshot is used."""
+ CREATE_NEW_SNAPSHOT = "CreateNewSnapshot"
+ """Value indicating a new snapshot is created."""
+
+
class VolumeBackupRelationshipStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Status of the volume backup relationship."""
@@ -929,6 +1156,15 @@ class VolumeRestoreRelationshipStatus(str, Enum, metaclass=CaseInsensitiveEnumMe
"""UNKNOWN."""
+class VolumeSize(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Volume size for backup."""
+
+ LARGE = "Large"
+ """Value indicating backup is for a large volume."""
+ REGULAR = "Regular"
+ """Value indicating backup is not for a large volume."""
+
+
class VolumeStorageToNetworkProximity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Provides storage to network proximity information for the volume."""
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/_models.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/_models.py
index 4c237484f3aa..ce7f76996778 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/_models.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/models/_models.py
@@ -73,6 +73,8 @@ class AccountProperties(_Model):
:vartype provisioning_state: str
:ivar active_directories: Active Directories.
:vartype active_directories: list[~azure.mgmt.netapp.models.ActiveDirectory]
+ :ivar entra_id_config: Entra ID configuration for the account.
+ :vartype entra_id_config: ~azure.mgmt.netapp.models.EntraIdConfig
:ivar encryption: Encryption settings.
:vartype encryption: ~azure.mgmt.netapp.models.AccountEncryption
:ivar disable_showmount: Shows the status of disableShowmount for all volumes under the
@@ -84,6 +86,8 @@ class AccountProperties(_Model):
:ivar multi_ad_status: MultiAD Status for the account. Known values are: "Disabled" and
"Enabled".
:vartype multi_ad_status: str or ~azure.mgmt.netapp.models.MultiAdStatus
+ :ivar ldap_configuration: LDAP Configuration for the account.
+ :vartype ldap_configuration: ~azure.mgmt.netapp.models.LdapConfiguration
"""
provisioning_state: Optional[str] = rest_field(name="provisioningState", visibility=["read"])
@@ -92,6 +96,10 @@ class AccountProperties(_Model):
name="activeDirectories", visibility=["read", "create", "update", "delete", "query"]
)
"""Active Directories."""
+ entra_id_config: Optional["_models.EntraIdConfig"] = rest_field(
+ name="entraIdConfig", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Entra ID configuration for the account."""
encryption: Optional["_models.AccountEncryption"] = rest_field(
visibility=["read", "create", "update", "delete", "query"]
)
@@ -107,6 +115,70 @@ class AccountProperties(_Model):
name="multiAdStatus", visibility=["read"]
)
"""MultiAD Status for the account. Known values are: \"Disabled\" and \"Enabled\"."""
+ ldap_configuration: Optional["_models.LdapConfiguration"] = rest_field(
+ name="ldapConfiguration", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """LDAP Configuration for the account."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ active_directories: Optional[list["_models.ActiveDirectory"]] = None,
+ entra_id_config: Optional["_models.EntraIdConfig"] = None,
+ encryption: Optional["_models.AccountEncryption"] = None,
+ nfs_v4_id_domain: Optional[str] = None,
+ ldap_configuration: Optional["_models.LdapConfiguration"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class AccountPropertiesPatch(_Model):
+ """NetApp account patch properties.
+
+ :ivar active_directories: Active Directories.
+ :vartype active_directories: list[~azure.mgmt.netapp.models.ActiveDirectory]
+ :ivar encryption: Encryption settings.
+ :vartype encryption: ~azure.mgmt.netapp.models.AccountEncryption
+ :ivar nfs_v4_id_domain: Domain for NFSv4 user ID mapping. This property will be set for all
+ NetApp accounts in the subscription and region and only affect non ldap NFSv4 volumes.
+ :vartype nfs_v4_id_domain: str
+ :ivar entra_id_config: Entra ID configuration for the account.
+ :vartype entra_id_config: ~azure.mgmt.netapp.models.EntraIdConfigPatch
+ :ivar ldap_configuration: LDAP Configuration for the account.
+ :vartype ldap_configuration: ~azure.mgmt.netapp.models.LdapConfigurationPatch
+ """
+
+ active_directories: Optional[list["_models.ActiveDirectory"]] = rest_field(
+ name="activeDirectories", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Active Directories."""
+ encryption: Optional["_models.AccountEncryption"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Encryption settings."""
+ nfs_v4_id_domain: Optional[str] = rest_field(
+ name="nfsV4IDDomain", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Domain for NFSv4 user ID mapping. This property will be set for all NetApp accounts in the
+ subscription and region and only affect non ldap NFSv4 volumes."""
+ entra_id_config: Optional["_models.EntraIdConfigPatch"] = rest_field(
+ name="entraIdConfig", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Entra ID configuration for the account."""
+ ldap_configuration: Optional["_models.LdapConfigurationPatch"] = rest_field(
+ name="ldapConfiguration", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """LDAP Configuration for the account."""
@overload
def __init__(
@@ -115,6 +187,8 @@ def __init__(
active_directories: Optional[list["_models.ActiveDirectory"]] = None,
encryption: Optional["_models.AccountEncryption"] = None,
nfs_v4_id_domain: Optional[str] = None,
+ entra_id_config: Optional["_models.EntraIdConfigPatch"] = None,
+ ldap_configuration: Optional["_models.LdapConfigurationPatch"] = None,
) -> None: ...
@overload
@@ -316,88 +390,6 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class AuthorizeRequest(_Model):
- """Authorize request.
-
- :ivar remote_volume_resource_id: Resource id of the remote volume.
- :vartype remote_volume_resource_id: str
- """
-
- remote_volume_resource_id: Optional[str] = rest_field(
- name="remoteVolumeResourceId", visibility=["read", "create", "update", "delete", "query"]
- )
- """Resource id of the remote volume."""
-
- @overload
- def __init__(
- self,
- *,
- remote_volume_resource_id: Optional[str] = None,
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None:
- """
- :param mapping: raw JSON to initialize the model.
- :type mapping: Mapping[str, Any]
- """
-
- def __init__(self, *args: Any, **kwargs: Any) -> None:
- super().__init__(*args, **kwargs)
-
-
-class AzureKeyVaultDetails(_Model):
- """Specifies the Azure Key Vault settings. These are used when
- a) retrieving the bucket server certificate, and
- b) storing the bucket credentials
-
- Notes:
-
-
-
- 1. If a bucket certificate was previously provided directly using the certificateObject
- property, it is possible to subsequently use the Azure Key Vault for certificate management by
- using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
- longer possible to provide the certificate directly via the certificateObject property.
-
- 2. These properties are mutually exclusive with the server.certificateObject property.
-
- :ivar certificate_akv_details: Specifies the Azure Key Vault settings for retrieving the bucket
- server certificate.
- :vartype certificate_akv_details: ~azure.mgmt.netapp.models.CertificateAkvDetails
- :ivar credentials_akv_details: Specifies the Azure Key Vault settings for storing the bucket
- credentials.
- :vartype credentials_akv_details: ~azure.mgmt.netapp.models.CredentialsAkvDetails
- """
-
- certificate_akv_details: Optional["_models.CertificateAkvDetails"] = rest_field(
- name="certificateAkvDetails", visibility=["read", "create", "update", "delete", "query"]
- )
- """Specifies the Azure Key Vault settings for retrieving the bucket server certificate."""
- credentials_akv_details: Optional["_models.CredentialsAkvDetails"] = rest_field(
- name="credentialsAkvDetails", visibility=["read", "create", "update", "delete", "query"]
- )
- """Specifies the Azure Key Vault settings for storing the bucket credentials."""
-
- @overload
- def __init__(
- self,
- *,
- certificate_akv_details: Optional["_models.CertificateAkvDetails"] = None,
- credentials_akv_details: Optional["_models.CredentialsAkvDetails"] = None,
- ) -> None: ...
-
- @overload
- def __init__(self, mapping: Mapping[str, Any]) -> None:
- """
- :param mapping: raw JSON to initialize the model.
- :type mapping: Mapping[str, Any]
- """
-
- def __init__(self, *args: Any, **kwargs: Any) -> None:
- super().__init__(*args, **kwargs)
-
-
class Resource(_Model):
"""Resource.
@@ -426,25 +418,8 @@ class Resource(_Model):
"""Azure Resource Manager metadata containing createdBy and modifiedBy information."""
-class ProxyResource(Resource):
- """Proxy Resource.
-
- :ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
- :vartype id: str
- :ivar name: The name of the resource.
- :vartype name: str
- :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
- "Microsoft.Storage/storageAccounts".
- :vartype type: str
- :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
- information.
- :vartype system_data: ~azure.mgmt.netapp.models.SystemData
- """
-
-
-class Backup(ProxyResource):
- """Backup under a Backup Vault.
+class TrackedResource(Resource):
+ """Tracked Resource.
:ivar id: Fully qualified resource ID for the resource. Ex -
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
@@ -457,35 +432,23 @@ class Backup(ProxyResource):
:ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
information.
:vartype system_data: ~azure.mgmt.netapp.models.SystemData
- :ivar properties: Backup Properties. Required.
- :vartype properties: ~azure.mgmt.netapp.models.BackupProperties
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
"""
- properties: "_models.BackupProperties" = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Backup Properties. Required."""
-
- __flattened_items = [
- "backup_id",
- "creation_date",
- "snapshot_creation_date",
- "completion_date",
- "provisioning_state",
- "size",
- "label",
- "backup_type",
- "failure_reason",
- "volume_resource_id",
- "use_existing_snapshot",
- "snapshot_name",
- "backup_policy_resource_id",
- "is_large_volume",
- ]
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
+ location: str = rest_field(visibility=["read", "create"])
+ """The geo-location where the resource lives. Required."""
@overload
def __init__(
self,
*,
- properties: "_models.BackupProperties",
+ location: str,
+ tags: Optional[dict[str, str]] = None,
) -> None: ...
@overload
@@ -496,46 +459,60 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
- _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
- for k, v in _flattened_input.items():
- setattr(self, k, v)
-
- def __getattr__(self, name: str) -> Any:
- if name in self.__flattened_items:
- if self.properties is None:
- return None
- return getattr(self.properties, name)
- raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
-
- def __setattr__(self, key: str, value: Any) -> None:
- if key in self.__flattened_items:
- if self.properties is None:
- self.properties = self._attr_to_rest_field["properties"]._class_type()
- setattr(self.properties, key, value)
- else:
- super().__setattr__(key, value)
-class BackupPatch(_Model):
- """Backup patch.
+class ActiveDirectoryConfig(TrackedResource):
+ """Active Directory Configuration resource.
- :ivar properties: Backup Patch Properties.
- :vartype properties: ~azure.mgmt.netapp.models.BackupPatchProperties
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ActiveDirectoryConfigProperties
+ :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
+ :vartype etag: str
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: ~azure.mgmt.netapp.models.ManagedServiceIdentity
"""
- properties: Optional["_models.BackupPatchProperties"] = rest_field(
+ properties: Optional["_models.ActiveDirectoryConfigProperties"] = rest_field(
visibility=["read", "create", "update", "delete", "query"]
)
- """Backup Patch Properties."""
-
- __flattened_items = ["label"]
+ """The resource-specific properties for this resource."""
+ etag: Optional[str] = rest_field(visibility=["read"])
+ """\"If etag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")."""
+ identity: Optional["_models.ManagedServiceIdentity"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The managed service identities assigned to this resource."""
@overload
def __init__(
self,
*,
- properties: Optional["_models.BackupPatchProperties"] = None,
+ location: str,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ActiveDirectoryConfigProperties"] = None,
+ identity: Optional["_models.ManagedServiceIdentity"] = None,
) -> None: ...
@overload
@@ -546,42 +523,106 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
- _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
- for k, v in _flattened_input.items():
- setattr(self, k, v)
- def __getattr__(self, name: str) -> Any:
- if name in self.__flattened_items:
- if self.properties is None:
- return None
- return getattr(self.properties, name)
- raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
- def __setattr__(self, key: str, value: Any) -> None:
- if key in self.__flattened_items:
- if self.properties is None:
- self.properties = self._attr_to_rest_field["properties"]._class_type()
- setattr(self.properties, key, value)
- else:
- super().__setattr__(key, value)
-
-
-class BackupPatchProperties(_Model):
- """Backup patch properties.
+class ActiveDirectoryConfigProperties(_Model):
+ """Active Directory Configuration properties.
- :ivar label: Label for backup.
- :vartype label: str
+ :ivar user_name: A domain user account with permission to create machine accounts.
+ :vartype user_name: str
+ :ivar dns: An array of DNS server IP addresses(IPv4 only) for the Active Directory.
+ :vartype dns: list[str]
+ :ivar smb_server_name: NetBIOS name of the SMB server. This name will be registered as a
+ computer account in the AD and used to mount volumes.
+ :vartype smb_server_name: str
+ :ivar organizational_unit: The Organizational Unit (OU) within the Windows Active Directory.
+ :vartype organizational_unit: str
+ :ivar site: The Active Directory site the service will limit Domain Controller discovery to.
+ Required.
+ :vartype site: str
+ :ivar backup_operators: Users to be added to the Built-in Backup Operator active directory
+ group. A list of unique usernames without domain specifier.
+ :vartype backup_operators: list[str]
+ :ivar administrators: Users to be added to the Built-in Administrators active directory group.
+ A list of unique usernames without domain specifier.
+ :vartype administrators: list[str]
+ :ivar security_operators: Domain Users in the Active directory to be given SecurityPrivilege
+ privilege (Needed for SMB Continuously available shares for SQL). A list of unique usernames
+ without domain specifier.
+ :vartype security_operators: list[str]
+ :ivar active_directory_status: Status of the Active Directory. Known values are: "Created",
+ "InUse", "Deleted", "Error", and "Updating".
+ :vartype active_directory_status: str or ~azure.mgmt.netapp.models.ActiveDirectoryStatus
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ :ivar domain: Name of the Active Directory domain. Required.
+ :vartype domain: str
+ :ivar secret_password: Access password from Azure KeyVault Secrets to connect Active Directory.
+ Required.
+ :vartype secret_password: ~azure.mgmt.netapp.models.SecretPassword
"""
- label: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Label for backup."""
+ user_name: Optional[str] = rest_field(name="userName", visibility=["read", "create", "update", "delete", "query"])
+ """A domain user account with permission to create machine accounts."""
+ dns: Optional[list[str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """An array of DNS server IP addresses(IPv4 only) for the Active Directory."""
+ smb_server_name: Optional[str] = rest_field(
+ name="smbServerName", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """NetBIOS name of the SMB server. This name will be registered as a computer account in the AD
+ and used to mount volumes."""
+ organizational_unit: Optional[str] = rest_field(
+ name="organizationalUnit", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The Organizational Unit (OU) within the Windows Active Directory."""
+ site: str = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """The Active Directory site the service will limit Domain Controller discovery to. Required."""
+ backup_operators: Optional[list[str]] = rest_field(
+ name="backupOperators", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Users to be added to the Built-in Backup Operator active directory group. A list of unique
+ usernames without domain specifier."""
+ administrators: Optional[list[str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Users to be added to the Built-in Administrators active directory group. A list of unique
+ usernames without domain specifier."""
+ security_operators: Optional[list[str]] = rest_field(
+ name="securityOperators", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Domain Users in the Active directory to be given SecurityPrivilege privilege (Needed for SMB
+ Continuously available shares for SQL). A list of unique usernames without domain specifier."""
+ active_directory_status: Optional[Union[str, "_models.ActiveDirectoryStatus"]] = rest_field(
+ name="activeDirectoryStatus", visibility=["read"]
+ )
+ """Status of the Active Directory. Known values are: \"Created\", \"InUse\", \"Deleted\",
+ \"Error\", and \"Updating\"."""
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ domain: str = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Name of the Active Directory domain. Required."""
+ secret_password: "_models.SecretPassword" = rest_field(
+ name="secretPassword", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Access password from Azure KeyVault Secrets to connect Active Directory. Required."""
@overload
def __init__(
self,
*,
- label: Optional[str] = None,
+ site: str,
+ domain: str,
+ secret_password: "_models.SecretPassword",
+ user_name: Optional[str] = None,
+ dns: Optional[list[str]] = None,
+ smb_server_name: Optional[str] = None,
+ organizational_unit: Optional[str] = None,
+ backup_operators: Optional[list[str]] = None,
+ administrators: Optional[list[str]] = None,
+ security_operators: Optional[list[str]] = None,
) -> None: ...
@overload
@@ -595,37 +636,35 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class TrackedResource(Resource):
- """Tracked Resource.
+class ActiveDirectoryConfigUpdate(_Model):
+ """The type used for update operations of the ActiveDirectoryConfig.
- :ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
- :vartype id: str
- :ivar name: The name of the resource.
- :vartype name: str
- :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
- "Microsoft.Storage/storageAccounts".
- :vartype type: str
- :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
- information.
- :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: ~azure.mgmt.netapp.models.ManagedServiceIdentity
:ivar tags: Resource tags.
:vartype tags: dict[str, str]
- :ivar location: The geo-location where the resource lives. Required.
- :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ActiveDirectoryConfigUpdateProperties
"""
+ identity: Optional["_models.ManagedServiceIdentity"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The managed service identities assigned to this resource."""
tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
"""Resource tags."""
- location: str = rest_field(visibility=["read", "create"])
- """The geo-location where the resource lives. Required."""
+ properties: Optional["_models.ActiveDirectoryConfigUpdateProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
@overload
def __init__(
self,
*,
- location: str,
+ identity: Optional["_models.ManagedServiceIdentity"] = None,
tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ActiveDirectoryConfigUpdateProperties"] = None,
) -> None: ...
@overload
@@ -639,61 +678,85 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class BackupPolicy(TrackedResource):
- """Backup policy information.
+class ActiveDirectoryConfigUpdateProperties(_Model):
+ """The updatable properties of the ActiveDirectoryConfig.
- :ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
- :vartype id: str
- :ivar name: The name of the resource.
- :vartype name: str
- :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
- "Microsoft.Storage/storageAccounts".
- :vartype type: str
- :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
- information.
- :vartype system_data: ~azure.mgmt.netapp.models.SystemData
- :ivar tags: Resource tags.
- :vartype tags: dict[str, str]
- :ivar location: The geo-location where the resource lives. Required.
- :vartype location: str
- :ivar properties: Backup policy Properties. Required.
- :vartype properties: ~azure.mgmt.netapp.models.BackupPolicyProperties
- :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
- the normal etag convention. Entity tags are used for comparing two or more entities from the
- same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
- (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
- :vartype etag: str
+ :ivar user_name: A domain user account with permission to create machine accounts.
+ :vartype user_name: str
+ :ivar dns: An array of DNS server IP addresses(IPv4 only) for the Active Directory.
+ :vartype dns: list[str]
+ :ivar smb_server_name: NetBIOS name of the SMB server. This name will be registered as a
+ computer account in the AD and used to mount volumes.
+ :vartype smb_server_name: str
+ :ivar organizational_unit: The Organizational Unit (OU) within the Windows Active Directory.
+ :vartype organizational_unit: str
+ :ivar site: The Active Directory site the service will limit Domain Controller discovery to.
+ :vartype site: str
+ :ivar backup_operators: Users to be added to the Built-in Backup Operator active directory
+ group. A list of unique usernames without domain specifier.
+ :vartype backup_operators: list[str]
+ :ivar administrators: Users to be added to the Built-in Administrators active directory group.
+ A list of unique usernames without domain specifier.
+ :vartype administrators: list[str]
+ :ivar security_operators: Domain Users in the Active directory to be given SecurityPrivilege
+ privilege (Needed for SMB Continuously available shares for SQL). A list of unique usernames
+ without domain specifier.
+ :vartype security_operators: list[str]
+ :ivar domain: Name of the Active Directory domain.
+ :vartype domain: str
+ :ivar secret_password: Access password from Azure KeyVault Secrets to connect Active Directory.
+ :vartype secret_password: ~azure.mgmt.netapp.models.SecretPassword
"""
- properties: "_models.BackupPolicyProperties" = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
+ user_name: Optional[str] = rest_field(name="userName", visibility=["read", "create", "update", "delete", "query"])
+ """A domain user account with permission to create machine accounts."""
+ dns: Optional[list[str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """An array of DNS server IP addresses(IPv4 only) for the Active Directory."""
+ smb_server_name: Optional[str] = rest_field(
+ name="smbServerName", visibility=["read", "create", "update", "delete", "query"]
)
- """Backup policy Properties. Required."""
- etag: Optional[str] = rest_field(visibility=["read"])
- """\"If etag is provided in the response body, it may also be provided as a header per the normal
- etag convention. Entity tags are used for comparing two or more entities from the same
- requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
- 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")."""
-
- __flattened_items = [
- "backup_policy_id",
- "provisioning_state",
- "daily_backups_to_keep",
- "weekly_backups_to_keep",
- "monthly_backups_to_keep",
- "volumes_assigned",
- "enabled",
- "volume_backups",
- ]
+ """NetBIOS name of the SMB server. This name will be registered as a computer account in the AD
+ and used to mount volumes."""
+ organizational_unit: Optional[str] = rest_field(
+ name="organizationalUnit", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The Organizational Unit (OU) within the Windows Active Directory."""
+ site: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """The Active Directory site the service will limit Domain Controller discovery to."""
+ backup_operators: Optional[list[str]] = rest_field(
+ name="backupOperators", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Users to be added to the Built-in Backup Operator active directory group. A list of unique
+ usernames without domain specifier."""
+ administrators: Optional[list[str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Users to be added to the Built-in Administrators active directory group. A list of unique
+ usernames without domain specifier."""
+ security_operators: Optional[list[str]] = rest_field(
+ name="securityOperators", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Domain Users in the Active directory to be given SecurityPrivilege privilege (Needed for SMB
+ Continuously available shares for SQL). A list of unique usernames without domain specifier."""
+ domain: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Name of the Active Directory domain."""
+ secret_password: Optional["_models.SecretPassword"] = rest_field(
+ name="secretPassword", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Access password from Azure KeyVault Secrets to connect Active Directory."""
@overload
def __init__(
self,
*,
- location: str,
- properties: "_models.BackupPolicyProperties",
- tags: Optional[dict[str, str]] = None,
+ user_name: Optional[str] = None,
+ dns: Optional[list[str]] = None,
+ smb_server_name: Optional[str] = None,
+ organizational_unit: Optional[str] = None,
+ site: Optional[str] = None,
+ backup_operators: Optional[list[str]] = None,
+ administrators: Optional[list[str]] = None,
+ security_operators: Optional[list[str]] = None,
+ domain: Optional[str] = None,
+ secret_password: Optional["_models.SecretPassword"] = None,
) -> None: ...
@overload
@@ -704,77 +767,26 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
- _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
- for k, v in _flattened_input.items():
- setattr(self, k, v)
-
- def __getattr__(self, name: str) -> Any:
- if name in self.__flattened_items:
- if self.properties is None:
- return None
- return getattr(self.properties, name)
- raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
-
- def __setattr__(self, key: str, value: Any) -> None:
- if key in self.__flattened_items:
- if self.properties is None:
- self.properties = self._attr_to_rest_field["properties"]._class_type()
- setattr(self.properties, key, value)
- else:
- super().__setattr__(key, value)
-class BackupPolicyPatch(_Model):
- """Backup policy Details for create and update.
+class AuthorizeRequest(_Model):
+ """Authorize request.
- :ivar location: Resource location.
- :vartype location: str
- :ivar id: Resource Id.
- :vartype id: str
- :ivar name: Resource name.
- :vartype name: str
- :ivar type: Resource type.
- :vartype type: str
- :ivar tags: Resource tags.
- :vartype tags: dict[str, str]
- :ivar properties: Backup policy Properties.
- :vartype properties: ~azure.mgmt.netapp.models.BackupPolicyProperties
+ :ivar remote_volume_resource_id: Resource id of the remote volume.
+ :vartype remote_volume_resource_id: str
"""
- location: Optional[str] = rest_field(visibility=["read", "create"])
- """Resource location."""
- id: Optional[str] = rest_field(visibility=["read"])
- """Resource Id."""
- name: Optional[str] = rest_field(visibility=["read"])
- """Resource name."""
- type: Optional[str] = rest_field(visibility=["read"])
- """Resource type."""
- tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Resource tags."""
- properties: Optional["_models.BackupPolicyProperties"] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
+ remote_volume_resource_id: Optional[str] = rest_field(
+ name="remoteVolumeResourceId", visibility=["read", "create", "update", "delete", "query"]
)
- """Backup policy Properties."""
-
- __flattened_items = [
- "backup_policy_id",
- "provisioning_state",
- "daily_backups_to_keep",
- "weekly_backups_to_keep",
- "monthly_backups_to_keep",
- "volumes_assigned",
- "enabled",
- "volume_backups",
- ]
+ """Resource id of the remote volume."""
@overload
def __init__(
self,
*,
- location: Optional[str] = None,
- tags: Optional[dict[str, str]] = None,
- properties: Optional["_models.BackupPolicyProperties"] = None,
+ remote_volume_resource_id: Optional[str] = None,
) -> None: ...
@overload
@@ -785,79 +797,48 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
- _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
- for k, v in _flattened_input.items():
- setattr(self, k, v)
- def __getattr__(self, name: str) -> Any:
- if name in self.__flattened_items:
- if self.properties is None:
- return None
- return getattr(self.properties, name)
- raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
- def __setattr__(self, key: str, value: Any) -> None:
- if key in self.__flattened_items:
- if self.properties is None:
- self.properties = self._attr_to_rest_field["properties"]._class_type()
- setattr(self.properties, key, value)
- else:
- super().__setattr__(key, value)
+class AzureKeyVaultDetails(_Model):
+ """Specifies the Azure Key Vault settings. These are used when
+ a) retrieving the bucket server certificate, and
+ b) storing the bucket credentials
+ Notes:
-class BackupPolicyProperties(_Model):
- """Backup policy properties.
- :ivar backup_policy_id: Backup Policy GUID ID.
- :vartype backup_policy_id: str
- :ivar provisioning_state: Azure lifecycle management.
- :vartype provisioning_state: str
- :ivar daily_backups_to_keep: Daily backups count to keep.
- :vartype daily_backups_to_keep: int
- :ivar weekly_backups_to_keep: Weekly backups count to keep.
- :vartype weekly_backups_to_keep: int
- :ivar monthly_backups_to_keep: Monthly backups count to keep.
- :vartype monthly_backups_to_keep: int
- :ivar volumes_assigned: Volumes using current backup policy.
- :vartype volumes_assigned: int
- :ivar enabled: The property to decide policy is enabled or not.
- :vartype enabled: bool
- :ivar volume_backups: A list of volumes assigned to this policy.
- :vartype volume_backups: list[~azure.mgmt.netapp.models.VolumeBackups]
+
+ 1. If a bucket certificate was previously provided directly using the certificateObject
+ property, it is possible to subsequently use the Azure Key Vault for certificate management by
+ using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
+ longer possible to provide the certificate directly via the certificateObject property.
+
+ 2. These properties are mutually exclusive with the server.certificateObject property.
+
+ :ivar certificate_akv_details: Specifies the Azure Key Vault settings for retrieving the bucket
+ server certificate.
+ :vartype certificate_akv_details: ~azure.mgmt.netapp.models.CertificateAkvDetails
+ :ivar credentials_akv_details: Specifies the Azure Key Vault settings for storing the bucket
+ credentials.
+ :vartype credentials_akv_details: ~azure.mgmt.netapp.models.CredentialsAkvDetails
"""
- backup_policy_id: Optional[str] = rest_field(name="backupPolicyId", visibility=["read"])
- """Backup Policy GUID ID."""
- provisioning_state: Optional[str] = rest_field(name="provisioningState", visibility=["read"])
- """Azure lifecycle management."""
- daily_backups_to_keep: Optional[int] = rest_field(
- name="dailyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
- )
- """Daily backups count to keep."""
- weekly_backups_to_keep: Optional[int] = rest_field(
- name="weeklyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ certificate_akv_details: Optional["_models.CertificateAkvDetails"] = rest_field(
+ name="certificateAkvDetails", visibility=["read", "create", "update", "delete", "query"]
)
- """Weekly backups count to keep."""
- monthly_backups_to_keep: Optional[int] = rest_field(
- name="monthlyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ """Specifies the Azure Key Vault settings for retrieving the bucket server certificate."""
+ credentials_akv_details: Optional["_models.CredentialsAkvDetails"] = rest_field(
+ name="credentialsAkvDetails", visibility=["read", "create", "update", "delete", "query"]
)
- """Monthly backups count to keep."""
- volumes_assigned: Optional[int] = rest_field(name="volumesAssigned", visibility=["read"])
- """Volumes using current backup policy."""
- enabled: Optional[bool] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """The property to decide policy is enabled or not."""
- volume_backups: Optional[list["_models.VolumeBackups"]] = rest_field(name="volumeBackups", visibility=["read"])
- """A list of volumes assigned to this policy."""
+ """Specifies the Azure Key Vault settings for storing the bucket credentials."""
@overload
def __init__(
self,
*,
- daily_backups_to_keep: Optional[int] = None,
- weekly_backups_to_keep: Optional[int] = None,
- monthly_backups_to_keep: Optional[int] = None,
- enabled: Optional[bool] = None,
+ certificate_akv_details: Optional["_models.CertificateAkvDetails"] = None,
+ credentials_akv_details: Optional["_models.CredentialsAkvDetails"] = None,
) -> None: ...
@overload
@@ -871,83 +852,66 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class BackupProperties(_Model):
- """Backup properties.
+class ProxyResource(Resource):
+ """Proxy Resource.
- :ivar backup_id: UUID v4 used to identify the Backup.
- :vartype backup_id: str
- :ivar creation_date: The creation date of the backup.
- :vartype creation_date: ~datetime.datetime
- :ivar snapshot_creation_date: The snapshot creation date of the backup.
- :vartype snapshot_creation_date: ~datetime.datetime
- :ivar completion_date: The completion date of the backup.
- :vartype completion_date: ~datetime.datetime
- :ivar provisioning_state: Azure lifecycle management.
- :vartype provisioning_state: str
- :ivar size: Size of backup in bytes.
- :vartype size: int
- :ivar label: Label for backup.
- :vartype label: str
- :ivar backup_type: Type of backup Manual or Scheduled. Known values are: "Manual" and
- "Scheduled".
- :vartype backup_type: str or ~azure.mgmt.netapp.models.BackupType
- :ivar failure_reason: Failure reason.
- :vartype failure_reason: str
- :ivar volume_resource_id: ResourceId used to identify the Volume. Required.
- :vartype volume_resource_id: str
- :ivar use_existing_snapshot: Manual backup an already existing snapshot. This will always be
- false for scheduled backups and true/false for manual backups.
- :vartype use_existing_snapshot: bool
- :ivar snapshot_name: The name of the snapshot.
- :vartype snapshot_name: str
- :ivar backup_policy_resource_id: ResourceId used to identify the backup policy.
- :vartype backup_policy_resource_id: str
- :ivar is_large_volume: Specifies if the backup is for a large volume.
- :vartype is_large_volume: bool
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
"""
- backup_id: Optional[str] = rest_field(name="backupId", visibility=["read"])
- """UUID v4 used to identify the Backup."""
- creation_date: Optional[datetime.datetime] = rest_field(name="creationDate", visibility=["read"], format="rfc3339")
- """The creation date of the backup."""
- snapshot_creation_date: Optional[datetime.datetime] = rest_field(
- name="snapshotCreationDate", visibility=["read"], format="rfc3339"
- )
- """The snapshot creation date of the backup."""
- completion_date: Optional[datetime.datetime] = rest_field(
- name="completionDate", visibility=["read"], format="rfc3339"
- )
- """The completion date of the backup."""
- provisioning_state: Optional[str] = rest_field(name="provisioningState", visibility=["read"])
- """Azure lifecycle management."""
- size: Optional[int] = rest_field(visibility=["read"])
- """Size of backup in bytes."""
- label: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Label for backup."""
- backup_type: Optional[Union[str, "_models.BackupType"]] = rest_field(name="backupType", visibility=["read"])
- """Type of backup Manual or Scheduled. Known values are: \"Manual\" and \"Scheduled\"."""
- failure_reason: Optional[str] = rest_field(name="failureReason", visibility=["read"])
- """Failure reason."""
- volume_resource_id: str = rest_field(name="volumeResourceId", visibility=["read", "create"])
- """ResourceId used to identify the Volume. Required."""
- use_existing_snapshot: Optional[bool] = rest_field(name="useExistingSnapshot", visibility=["read", "create"])
- """Manual backup an already existing snapshot. This will always be false for scheduled backups and
- true/false for manual backups."""
- snapshot_name: Optional[str] = rest_field(name="snapshotName", visibility=["read", "create"])
- """The name of the snapshot."""
- backup_policy_resource_id: Optional[str] = rest_field(name="backupPolicyResourceId", visibility=["read"])
- """ResourceId used to identify the backup policy."""
- is_large_volume: Optional[bool] = rest_field(name="isLargeVolume", visibility=["read"])
- """Specifies if the backup is for a large volume."""
+
+class Backup(ProxyResource):
+ """Backup under a Backup Vault.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar properties: Backup Properties. Required.
+ :vartype properties: ~azure.mgmt.netapp.models.BackupProperties
+ """
+
+ properties: "_models.BackupProperties" = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Backup Properties. Required."""
+
+ __flattened_items = [
+ "backup_id",
+ "creation_date",
+ "snapshot_creation_date",
+ "completion_date",
+ "provisioning_state",
+ "size",
+ "label",
+ "backup_type",
+ "failure_reason",
+ "volume_resource_id",
+ "use_existing_snapshot",
+ "snapshot_name",
+ "backup_policy_resource_id",
+ "is_large_volume",
+ ]
@overload
def __init__(
self,
*,
- volume_resource_id: str,
- label: Optional[str] = None,
- use_existing_snapshot: Optional[bool] = None,
- snapshot_name: Optional[str] = None,
+ properties: "_models.BackupProperties",
) -> None: ...
@overload
@@ -958,43 +922,46 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
+ _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
+ for k, v in _flattened_input.items():
+ setattr(self, k, v)
+ def __getattr__(self, name: str) -> Any:
+ if name in self.__flattened_items:
+ if self.properties is None:
+ return None
+ return getattr(self.properties, name)
+ raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
-class BackupRestoreFiles(_Model):
- """Restore payload for Single File Backup Restore.
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key in self.__flattened_items:
+ if self.properties is None:
+ self.properties = self._attr_to_rest_field["properties"]._class_type()
+ setattr(self.properties, key, value)
+ else:
+ super().__setattr__(key, value)
- :ivar file_list: List of files to be restored. Required.
- :vartype file_list: list[str]
- :ivar restore_file_path: Destination folder where the files will be restored. The path name
- should start with a forward slash. If it is omitted from request then restore is done at the
- root folder of the destination volume by default.
- :vartype restore_file_path: str
- :ivar destination_volume_id: Resource Id of the destination volume on which the files need to
- be restored. Required.
- :vartype destination_volume_id: str
+
+class BackupPatch(_Model):
+ """Backup patch.
+
+ :ivar properties: Backup Patch Properties.
+ :vartype properties: ~azure.mgmt.netapp.models.BackupPatchProperties
"""
- file_list: list[str] = rest_field(name="fileList", visibility=["read", "create", "update", "delete", "query"])
- """List of files to be restored. Required."""
- restore_file_path: Optional[str] = rest_field(
- name="restoreFilePath", visibility=["read", "create", "update", "delete", "query"]
+ properties: Optional["_models.BackupPatchProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """Destination folder where the files will be restored. The path name should start with a forward
- slash. If it is omitted from request then restore is done at the root folder of the destination
- volume by default."""
- destination_volume_id: str = rest_field(
- name="destinationVolumeId", visibility=["read", "create", "update", "delete", "query"]
- )
- """Resource Id of the destination volume on which the files need to be restored. Required."""
+ """Backup Patch Properties."""
+
+ __flattened_items = ["label"]
@overload
def __init__(
self,
*,
- file_list: list[str],
- destination_volume_id: str,
- restore_file_path: Optional[str] = None,
+ properties: Optional["_models.BackupPatchProperties"] = None,
) -> None: ...
@overload
@@ -1005,24 +972,42 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
+ _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
+ for k, v in _flattened_input.items():
+ setattr(self, k, v)
+
+ def __getattr__(self, name: str) -> Any:
+ if name in self.__flattened_items:
+ if self.properties is None:
+ return None
+ return getattr(self.properties, name)
+ raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key in self.__flattened_items:
+ if self.properties is None:
+ self.properties = self._attr_to_rest_field["properties"]._class_type()
+ setattr(self.properties, key, value)
+ else:
+ super().__setattr__(key, value)
-class BackupsMigrationRequest(_Model):
- """Migrate Backups Request.
- :ivar backup_vault_id: The ResourceId of the Backup Vault. Required.
- :vartype backup_vault_id: str
+class BackupPatchProperties(_Model):
+ """Backup patch properties.
+
+ :ivar label: Label for backup.
+ :vartype label: str
"""
- backup_vault_id: str = rest_field(name="backupVaultId", visibility=["read", "create", "update", "delete", "query"])
- """The ResourceId of the Backup Vault. Required."""
+ label: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Label for backup."""
@overload
def __init__(
self,
*,
- backup_vault_id: str,
+ label: Optional[str] = None,
) -> None: ...
@overload
@@ -1036,57 +1021,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class BackupStatus(_Model):
- """Backup status.
-
- :ivar healthy: Backup health status.
- :vartype healthy: bool
- :ivar relationship_status: Status of the backup mirror relationship. Known values are: "Idle",
- "Transferring", "Failed", and "Unknown".
- :vartype relationship_status: str or ~azure.mgmt.netapp.models.VolumeBackupRelationshipStatus
- :ivar mirror_state: The status of the backup. Known values are: "Uninitialized", "Mirrored",
- and "Broken".
- :vartype mirror_state: str or ~azure.mgmt.netapp.models.MirrorState
- :ivar unhealthy_reason: Reason for the unhealthy backup relationship.
- :vartype unhealthy_reason: str
- :ivar error_message: Displays error message if the backup is in an error state.
- :vartype error_message: str
- :ivar last_transfer_size: Displays the last transfer size.
- :vartype last_transfer_size: int
- :ivar last_transfer_type: Displays the last transfer type.
- :vartype last_transfer_type: str
- :ivar total_transfer_bytes: Displays the total bytes transferred.
- :vartype total_transfer_bytes: int
- :ivar transfer_progress_bytes: Displays the total number of bytes transferred for the ongoing
- operation.
- :vartype transfer_progress_bytes: int
- """
-
- healthy: Optional[bool] = rest_field(visibility=["read"])
- """Backup health status."""
- relationship_status: Optional[Union[str, "_models.VolumeBackupRelationshipStatus"]] = rest_field(
- name="relationshipStatus", visibility=["read"]
- )
- """Status of the backup mirror relationship. Known values are: \"Idle\", \"Transferring\",
- \"Failed\", and \"Unknown\"."""
- mirror_state: Optional[Union[str, "_models.MirrorState"]] = rest_field(name="mirrorState", visibility=["read"])
- """The status of the backup. Known values are: \"Uninitialized\", \"Mirrored\", and \"Broken\"."""
- unhealthy_reason: Optional[str] = rest_field(name="unhealthyReason", visibility=["read"])
- """Reason for the unhealthy backup relationship."""
- error_message: Optional[str] = rest_field(name="errorMessage", visibility=["read"])
- """Displays error message if the backup is in an error state."""
- last_transfer_size: Optional[int] = rest_field(name="lastTransferSize", visibility=["read"])
- """Displays the last transfer size."""
- last_transfer_type: Optional[str] = rest_field(name="lastTransferType", visibility=["read"])
- """Displays the last transfer type."""
- total_transfer_bytes: Optional[int] = rest_field(name="totalTransferBytes", visibility=["read"])
- """Displays the total bytes transferred."""
- transfer_progress_bytes: Optional[int] = rest_field(name="transferProgressBytes", visibility=["read"])
- """Displays the total number of bytes transferred for the ongoing operation."""
-
-
-class BackupVault(TrackedResource):
- """Backup Vault information.
+class BackupPolicy(TrackedResource):
+ """Backup policy information.
:ivar id: Fully qualified resource ID for the resource. Ex -
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
@@ -1103,24 +1039,43 @@ class BackupVault(TrackedResource):
:vartype tags: dict[str, str]
:ivar location: The geo-location where the resource lives. Required.
:vartype location: str
- :ivar properties: Backup Vault Properties.
- :vartype properties: ~azure.mgmt.netapp.models.BackupVaultProperties
+ :ivar properties: Backup policy Properties. Required.
+ :vartype properties: ~azure.mgmt.netapp.models.BackupPolicyProperties
+ :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
+ :vartype etag: str
"""
- properties: Optional["_models.BackupVaultProperties"] = rest_field(
+ properties: "_models.BackupPolicyProperties" = rest_field(
visibility=["read", "create", "update", "delete", "query"]
)
- """Backup Vault Properties."""
+ """Backup policy Properties. Required."""
+ etag: Optional[str] = rest_field(visibility=["read"])
+ """\"If etag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")."""
- __flattened_items = ["provisioning_state"]
+ __flattened_items = [
+ "backup_policy_id",
+ "provisioning_state",
+ "daily_backups_to_keep",
+ "weekly_backups_to_keep",
+ "monthly_backups_to_keep",
+ "volumes_assigned",
+ "enabled",
+ "volume_backups",
+ ]
@overload
def __init__(
self,
*,
location: str,
+ properties: "_models.BackupPolicyProperties",
tags: Optional[dict[str, str]] = None,
- properties: Optional["_models.BackupVaultProperties"] = None,
) -> None: ...
@overload
@@ -1152,21 +1107,56 @@ def __setattr__(self, key: str, value: Any) -> None:
super().__setattr__(key, value)
-class BackupVaultPatch(_Model):
- """Backup Vault information.
+class BackupPolicyPatch(_Model):
+ """Backup policy Details for create and update.
+ :ivar location: Resource location.
+ :vartype location: str
+ :ivar id: Resource Id.
+ :vartype id: str
+ :ivar name: Resource name.
+ :vartype name: str
+ :ivar type: Resource type.
+ :vartype type: str
:ivar tags: Resource tags.
:vartype tags: dict[str, str]
+ :ivar properties: Backup policy Properties.
+ :vartype properties: ~azure.mgmt.netapp.models.BackupPolicyProperties
"""
+ location: Optional[str] = rest_field(visibility=["read", "create"])
+ """Resource location."""
+ id: Optional[str] = rest_field(visibility=["read"])
+ """Resource Id."""
+ name: Optional[str] = rest_field(visibility=["read"])
+ """Resource name."""
+ type: Optional[str] = rest_field(visibility=["read"])
+ """Resource type."""
tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
"""Resource tags."""
+ properties: Optional["_models.BackupPolicyProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Backup policy Properties."""
+
+ __flattened_items = [
+ "backup_policy_id",
+ "provisioning_state",
+ "daily_backups_to_keep",
+ "weekly_backups_to_keep",
+ "monthly_backups_to_keep",
+ "volumes_assigned",
+ "enabled",
+ "volume_backups",
+ ]
@overload
def __init__(
self,
*,
+ location: Optional[str] = None,
tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.BackupPolicyProperties"] = None,
) -> None: ...
@overload
@@ -1177,44 +1167,79 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
+ _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
+ for k, v in _flattened_input.items():
+ setattr(self, k, v)
+ def __getattr__(self, name: str) -> Any:
+ if name in self.__flattened_items:
+ if self.properties is None:
+ return None
+ return getattr(self.properties, name)
+ raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
+
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key in self.__flattened_items:
+ if self.properties is None:
+ self.properties = self._attr_to_rest_field["properties"]._class_type()
+ setattr(self.properties, key, value)
+ else:
+ super().__setattr__(key, value)
-class BackupVaultProperties(_Model):
- """Backup Vault properties.
+class BackupPolicyProperties(_Model):
+ """Backup policy properties.
+
+ :ivar backup_policy_id: Backup Policy GUID ID.
+ :vartype backup_policy_id: str
:ivar provisioning_state: Azure lifecycle management.
:vartype provisioning_state: str
+ :ivar daily_backups_to_keep: Daily backups count to keep.
+ :vartype daily_backups_to_keep: int
+ :ivar weekly_backups_to_keep: Weekly backups count to keep.
+ :vartype weekly_backups_to_keep: int
+ :ivar monthly_backups_to_keep: Monthly backups count to keep.
+ :vartype monthly_backups_to_keep: int
+ :ivar volumes_assigned: Volumes using current backup policy.
+ :vartype volumes_assigned: int
+ :ivar enabled: The property to decide policy is enabled or not.
+ :vartype enabled: bool
+ :ivar volume_backups: A list of volumes assigned to this policy.
+ :vartype volume_backups: list[~azure.mgmt.netapp.models.VolumeBackups]
"""
+ backup_policy_id: Optional[str] = rest_field(name="backupPolicyId", visibility=["read"])
+ """Backup Policy GUID ID."""
provisioning_state: Optional[str] = rest_field(name="provisioningState", visibility=["read"])
"""Azure lifecycle management."""
-
-
-class BreakFileLocksRequest(_Model):
- """Break file locks request.
-
- :ivar client_ip: To clear file locks on a volume for a particular client.
- :vartype client_ip: str
- :ivar confirm_running_disruptive_operation: Break File locks could be a disruptive operation
- for application as locks on the volume will be broken, if want to process, set to true.
- :vartype confirm_running_disruptive_operation: bool
- """
-
- client_ip: Optional[str] = rest_field(name="clientIp", visibility=["read", "create", "update", "delete", "query"])
- """To clear file locks on a volume for a particular client."""
- confirm_running_disruptive_operation: Optional[bool] = rest_field(
- name="confirmRunningDisruptiveOperation", visibility=["read", "create", "update", "delete", "query"]
+ daily_backups_to_keep: Optional[int] = rest_field(
+ name="dailyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
)
- """Break File locks could be a disruptive operation for application as locks on the volume will be
- broken, if want to process, set to true."""
+ """Daily backups count to keep."""
+ weekly_backups_to_keep: Optional[int] = rest_field(
+ name="weeklyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Weekly backups count to keep."""
+ monthly_backups_to_keep: Optional[int] = rest_field(
+ name="monthlyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Monthly backups count to keep."""
+ volumes_assigned: Optional[int] = rest_field(name="volumesAssigned", visibility=["read"])
+ """Volumes using current backup policy."""
+ enabled: Optional[bool] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """The property to decide policy is enabled or not."""
+ volume_backups: Optional[list["_models.VolumeBackups"]] = rest_field(name="volumeBackups", visibility=["read"])
+ """A list of volumes assigned to this policy."""
@overload
def __init__(
self,
*,
- client_ip: Optional[str] = None,
- confirm_running_disruptive_operation: Optional[bool] = None,
+ daily_backups_to_keep: Optional[int] = None,
+ weekly_backups_to_keep: Optional[int] = None,
+ monthly_backups_to_keep: Optional[int] = None,
+ enabled: Optional[bool] = None,
) -> None: ...
@overload
@@ -1228,25 +1253,83 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class BreakReplicationRequest(_Model):
- """Break replication request.
-
- :ivar force_break_replication: If replication is in status transferring and you want to force
- break the replication, set to true.
- :vartype force_break_replication: bool
- """
+class BackupProperties(_Model):
+ """Backup properties.
- force_break_replication: Optional[bool] = rest_field(
- name="forceBreakReplication", visibility=["read", "create", "update", "delete", "query"]
- )
- """If replication is in status transferring and you want to force break the replication, set to
- true."""
+ :ivar backup_id: UUID v4 used to identify the Backup.
+ :vartype backup_id: str
+ :ivar creation_date: The creation date of the backup.
+ :vartype creation_date: ~datetime.datetime
+ :ivar snapshot_creation_date: The snapshot creation date of the backup.
+ :vartype snapshot_creation_date: ~datetime.datetime
+ :ivar completion_date: The completion date of the backup.
+ :vartype completion_date: ~datetime.datetime
+ :ivar provisioning_state: Azure lifecycle management.
+ :vartype provisioning_state: str
+ :ivar size: Size of backup in bytes.
+ :vartype size: int
+ :ivar label: Label for backup.
+ :vartype label: str
+ :ivar backup_type: Type of backup Manual or Scheduled. Known values are: "Manual" and
+ "Scheduled".
+ :vartype backup_type: str or ~azure.mgmt.netapp.models.BackupType
+ :ivar failure_reason: Failure reason.
+ :vartype failure_reason: str
+ :ivar volume_resource_id: ResourceId used to identify the Volume. Required.
+ :vartype volume_resource_id: str
+ :ivar use_existing_snapshot: Manual backup an already existing snapshot. This will always be
+ false for scheduled backups and true/false for manual backups.
+ :vartype use_existing_snapshot: bool
+ :ivar snapshot_name: The name of the snapshot.
+ :vartype snapshot_name: str
+ :ivar backup_policy_resource_id: ResourceId used to identify the backup policy.
+ :vartype backup_policy_resource_id: str
+ :ivar is_large_volume: Specifies if the backup is for a large volume.
+ :vartype is_large_volume: bool
+ """
+
+ backup_id: Optional[str] = rest_field(name="backupId", visibility=["read"])
+ """UUID v4 used to identify the Backup."""
+ creation_date: Optional[datetime.datetime] = rest_field(name="creationDate", visibility=["read"], format="rfc3339")
+ """The creation date of the backup."""
+ snapshot_creation_date: Optional[datetime.datetime] = rest_field(
+ name="snapshotCreationDate", visibility=["read"], format="rfc3339"
+ )
+ """The snapshot creation date of the backup."""
+ completion_date: Optional[datetime.datetime] = rest_field(
+ name="completionDate", visibility=["read"], format="rfc3339"
+ )
+ """The completion date of the backup."""
+ provisioning_state: Optional[str] = rest_field(name="provisioningState", visibility=["read"])
+ """Azure lifecycle management."""
+ size: Optional[int] = rest_field(visibility=["read"])
+ """Size of backup in bytes."""
+ label: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Label for backup."""
+ backup_type: Optional[Union[str, "_models.BackupType"]] = rest_field(name="backupType", visibility=["read"])
+ """Type of backup Manual or Scheduled. Known values are: \"Manual\" and \"Scheduled\"."""
+ failure_reason: Optional[str] = rest_field(name="failureReason", visibility=["read"])
+ """Failure reason."""
+ volume_resource_id: str = rest_field(name="volumeResourceId", visibility=["read", "create"])
+ """ResourceId used to identify the Volume. Required."""
+ use_existing_snapshot: Optional[bool] = rest_field(name="useExistingSnapshot", visibility=["read", "create"])
+ """Manual backup an already existing snapshot. This will always be false for scheduled backups and
+ true/false for manual backups."""
+ snapshot_name: Optional[str] = rest_field(name="snapshotName", visibility=["read", "create"])
+ """The name of the snapshot."""
+ backup_policy_resource_id: Optional[str] = rest_field(name="backupPolicyResourceId", visibility=["read"])
+ """ResourceId used to identify the backup policy."""
+ is_large_volume: Optional[bool] = rest_field(name="isLargeVolume", visibility=["read"])
+ """Specifies if the backup is for a large volume."""
@overload
def __init__(
self,
*,
- force_break_replication: Optional[bool] = None,
+ volume_resource_id: str,
+ label: Optional[str] = None,
+ use_existing_snapshot: Optional[bool] = None,
+ snapshot_name: Optional[str] = None,
) -> None: ...
@overload
@@ -1260,44 +1343,40 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class Bucket(ProxyResource):
- """Bucket resource.
+class BackupRestoreFiles(_Model):
+ """Restore payload for Single File Backup Restore.
- :ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
- :vartype id: str
- :ivar name: The name of the resource.
- :vartype name: str
- :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
- "Microsoft.Storage/storageAccounts".
- :vartype type: str
- :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
- information.
- :vartype system_data: ~azure.mgmt.netapp.models.SystemData
- :ivar properties: Bucket properties.
- :vartype properties: ~azure.mgmt.netapp.models.BucketProperties
+ :ivar file_list: List of files to be restored. Required.
+ :vartype file_list: list[str]
+ :ivar restore_file_path: Destination folder where the files will be restored. The path name
+ should start with a forward slash. If it is omitted from request then restore is done at the
+ root folder of the destination volume by default.
+ :vartype restore_file_path: str
+ :ivar destination_volume_id: Resource Id of the destination volume on which the files need to
+ be restored. Required.
+ :vartype destination_volume_id: str
"""
- properties: Optional["_models.BucketProperties"] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
+ file_list: list[str] = rest_field(name="fileList", visibility=["read", "create", "update", "delete", "query"])
+ """List of files to be restored. Required."""
+ restore_file_path: Optional[str] = rest_field(
+ name="restoreFilePath", visibility=["read", "create", "update", "delete", "query"]
)
- """Bucket properties."""
-
- __flattened_items = [
- "path",
- "file_system_user",
- "provisioning_state",
- "status",
- "server",
- "permissions",
- "akv_details",
- ]
+ """Destination folder where the files will be restored. The path name should start with a forward
+ slash. If it is omitted from request then restore is done at the root folder of the destination
+ volume by default."""
+ destination_volume_id: str = rest_field(
+ name="destinationVolumeId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Resource Id of the destination volume on which the files need to be restored. Required."""
@overload
def __init__(
self,
*,
- properties: Optional["_models.BucketProperties"] = None,
+ file_list: list[str],
+ destination_volume_id: str,
+ restore_file_path: Optional[str] = None,
) -> None: ...
@overload
@@ -1308,45 +1387,24 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
- _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
- for k, v in _flattened_input.items():
- setattr(self, k, v)
-
- def __getattr__(self, name: str) -> Any:
- if name in self.__flattened_items:
- if self.properties is None:
- return None
- return getattr(self.properties, name)
- raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
-
- def __setattr__(self, key: str, value: Any) -> None:
- if key in self.__flattened_items:
- if self.properties is None:
- self.properties = self._attr_to_rest_field["properties"]._class_type()
- setattr(self.properties, key, value)
- else:
- super().__setattr__(key, value)
-class BucketCredentialsExpiry(_Model):
- """The bucket's Access and Secret key pair Expiry Time expressed as the number of days from now.
+class BackupsMigrationRequest(_Model):
+ """Migrate Backups Request.
- :ivar key_pair_expiry_days: The number of days from now until the newly generated Access and
- Secret key pair will expire.
- :vartype key_pair_expiry_days: int
+ :ivar backup_vault_id: The ResourceId of the Backup Vault. Required.
+ :vartype backup_vault_id: str
"""
- key_pair_expiry_days: Optional[int] = rest_field(
- name="keyPairExpiryDays", visibility=["read", "create", "update", "delete", "query"]
- )
- """The number of days from now until the newly generated Access and Secret key pair will expire."""
+ backup_vault_id: str = rest_field(name="backupVaultId", visibility=["read", "create", "update", "delete", "query"])
+ """The ResourceId of the Backup Vault. Required."""
@overload
def __init__(
self,
*,
- key_pair_expiry_days: Optional[int] = None,
+ backup_vault_id: str,
) -> None: ...
@overload
@@ -1360,31 +1418,57 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class BucketGenerateCredentials(_Model):
- """Bucket Access Key, Secret Key, and Expiry date and time of the key pair.
+class BackupStatus(_Model):
+ """Backup status.
- :ivar access_key: The Access Key that is required along with the Secret Key to access the
- bucket.
- :vartype access_key: str
- :ivar secret_key: The Secret Key that is required along with the Access Key to access the
- bucket.
- :vartype secret_key: str
- :ivar key_pair_expiry: The bucket's Access and Secret key pair expiry date and time (in UTC).
- :vartype key_pair_expiry: ~datetime.datetime
+ :ivar healthy: Backup health status.
+ :vartype healthy: bool
+ :ivar relationship_status: Status of the backup mirror relationship. Known values are: "Idle",
+ "Transferring", "Failed", and "Unknown".
+ :vartype relationship_status: str or ~azure.mgmt.netapp.models.VolumeBackupRelationshipStatus
+ :ivar mirror_state: The status of the backup. Known values are: "Uninitialized", "Mirrored",
+ and "Broken".
+ :vartype mirror_state: str or ~azure.mgmt.netapp.models.MirrorState
+ :ivar unhealthy_reason: Reason for the unhealthy backup relationship.
+ :vartype unhealthy_reason: str
+ :ivar error_message: Displays error message if the backup is in an error state.
+ :vartype error_message: str
+ :ivar last_transfer_size: Displays the last transfer size.
+ :vartype last_transfer_size: int
+ :ivar last_transfer_type: Displays the last transfer type.
+ :vartype last_transfer_type: str
+ :ivar total_transfer_bytes: Displays the total bytes transferred.
+ :vartype total_transfer_bytes: int
+ :ivar transfer_progress_bytes: Displays the total number of bytes transferred for the ongoing
+ operation.
+ :vartype transfer_progress_bytes: int
"""
- access_key: Optional[str] = rest_field(name="accessKey", visibility=["read"])
- """The Access Key that is required along with the Secret Key to access the bucket."""
- secret_key: Optional[str] = rest_field(name="secretKey", visibility=["read"])
- """The Secret Key that is required along with the Access Key to access the bucket."""
- key_pair_expiry: Optional[datetime.datetime] = rest_field(
- name="keyPairExpiry", visibility=["read"], format="rfc3339"
+ healthy: Optional[bool] = rest_field(visibility=["read"])
+ """Backup health status."""
+ relationship_status: Optional[Union[str, "_models.VolumeBackupRelationshipStatus"]] = rest_field(
+ name="relationshipStatus", visibility=["read"]
)
- """The bucket's Access and Secret key pair expiry date and time (in UTC)."""
+ """Status of the backup mirror relationship. Known values are: \"Idle\", \"Transferring\",
+ \"Failed\", and \"Unknown\"."""
+ mirror_state: Optional[Union[str, "_models.MirrorState"]] = rest_field(name="mirrorState", visibility=["read"])
+ """The status of the backup. Known values are: \"Uninitialized\", \"Mirrored\", and \"Broken\"."""
+ unhealthy_reason: Optional[str] = rest_field(name="unhealthyReason", visibility=["read"])
+ """Reason for the unhealthy backup relationship."""
+ error_message: Optional[str] = rest_field(name="errorMessage", visibility=["read"])
+ """Displays error message if the backup is in an error state."""
+ last_transfer_size: Optional[int] = rest_field(name="lastTransferSize", visibility=["read"])
+ """Displays the last transfer size."""
+ last_transfer_type: Optional[str] = rest_field(name="lastTransferType", visibility=["read"])
+ """Displays the last transfer type."""
+ total_transfer_bytes: Optional[int] = rest_field(name="totalTransferBytes", visibility=["read"])
+ """Displays the total bytes transferred."""
+ transfer_progress_bytes: Optional[int] = rest_field(name="transferProgressBytes", visibility=["read"])
+ """Displays the total number of bytes transferred for the ongoing operation."""
-class BucketPatch(ProxyResource):
- """Bucket resource.
+class BackupVault(TrackedResource):
+ """Backup Vault information.
:ivar id: Fully qualified resource ID for the resource. Ex -
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
@@ -1397,22 +1481,28 @@ class BucketPatch(ProxyResource):
:ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
information.
:vartype system_data: ~azure.mgmt.netapp.models.SystemData
- :ivar properties: Bucket properties.
- :vartype properties: ~azure.mgmt.netapp.models.BucketPatchProperties
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: Backup Vault Properties.
+ :vartype properties: ~azure.mgmt.netapp.models.BackupVaultProperties
"""
- properties: Optional["_models.BucketPatchProperties"] = rest_field(
+ properties: Optional["_models.BackupVaultProperties"] = rest_field(
visibility=["read", "create", "update", "delete", "query"]
)
- """Bucket properties."""
+ """Backup Vault Properties."""
- __flattened_items = ["file_system_user", "provisioning_state", "server", "permissions", "akv_details"]
+ __flattened_items = ["provisioning_state"]
@overload
def __init__(
self,
*,
- properties: Optional["_models.BucketPatchProperties"] = None,
+ location: str,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.BackupVaultProperties"] = None,
) -> None: ...
@overload
@@ -1444,82 +1534,21 @@ def __setattr__(self, key: str, value: Any) -> None:
super().__setattr__(key, value)
-class BucketPatchProperties(_Model):
- """Bucket resource properties for a Patch operation.
+class BackupVaultPatch(_Model):
+ """Backup Vault information.
- :ivar file_system_user: File System user having access to volume data. For Unix, this is the
- user's uid and gid. For Windows, this is the user's username. Note that the Unix and Windows
- user details are mutually exclusive, meaning one or other must be supplied, but not both.
- :vartype file_system_user: ~azure.mgmt.netapp.models.FileSystemUser
- :ivar provisioning_state: Provisioning state of the resource. Known values are: "Accepted",
- "Creating", "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
- :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
- :ivar server: Properties of the server managing the lifecycle of volume buckets.
- :vartype server: ~azure.mgmt.netapp.models.BucketServerPatchProperties
- :ivar permissions: Access permissions for the bucket. Either ReadOnly or ReadWrite. Known
- values are: "ReadOnly" and "ReadWrite".
- :vartype permissions: str or ~azure.mgmt.netapp.models.BucketPatchPermissions
- :ivar akv_details: Specifies the Azure Key Vault settings. These are used when
- a) retrieving the bucket server certificate, and
- b) storing the bucket credentials
-
- Notes:
-
-
-
- 1. If a bucket certificate was previously provided directly using the certificateObject
- property, it is possible to subsequently use the Azure Key Vault for certificate management by
- using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
- longer possible to provide the certificate directly via the certificateObject property.
- 2. These properties are mutually exclusive with the server.certificateObject property.
- :vartype akv_details: ~azure.mgmt.netapp.models.AzureKeyVaultDetails
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
"""
- file_system_user: Optional["_models.FileSystemUser"] = rest_field(
- name="fileSystemUser", visibility=["read", "create", "update", "delete", "query"]
- )
- """File System user having access to volume data. For Unix, this is the user's uid and gid. For
- Windows, this is the user's username. Note that the Unix and Windows user details are mutually
- exclusive, meaning one or other must be supplied, but not both."""
- provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
- name="provisioningState", visibility=["read"]
- )
- """Provisioning state of the resource. Known values are: \"Accepted\", \"Creating\", \"Patching\",
- \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
- server: Optional["_models.BucketServerPatchProperties"] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
- )
- """Properties of the server managing the lifecycle of volume buckets."""
- permissions: Optional[Union[str, "_models.BucketPatchPermissions"]] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
- )
- """Access permissions for the bucket. Either ReadOnly or ReadWrite. Known values are: \"ReadOnly\"
- and \"ReadWrite\"."""
- akv_details: Optional["_models.AzureKeyVaultDetails"] = rest_field(
- name="akvDetails", visibility=["read", "create", "update", "delete", "query"]
- )
- """Specifies the Azure Key Vault settings. These are used when
- a) retrieving the bucket server certificate, and
- b) storing the bucket credentials
-
- Notes:
-
-
-
- 1. If a bucket certificate was previously provided directly using the certificateObject
- property, it is possible to subsequently use the Azure Key Vault for certificate management by
- using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
- longer possible to provide the certificate directly via the certificateObject property.
- 2. These properties are mutually exclusive with the server.certificateObject property."""
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
@overload
def __init__(
self,
*,
- file_system_user: Optional["_models.FileSystemUser"] = None,
- server: Optional["_models.BucketServerPatchProperties"] = None,
- permissions: Optional[Union[str, "_models.BucketPatchPermissions"]] = None,
- akv_details: Optional["_models.AzureKeyVaultDetails"] = None,
+ tags: Optional[dict[str, str]] = None,
) -> None: ...
@overload
@@ -1533,104 +1562,50 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class BucketProperties(_Model):
- """Bucket resource properties.
-
- :ivar path: The volume path mounted inside the bucket. The default is the root path '/' if no
- value is provided when the bucket is created.
- :vartype path: str
- :ivar file_system_user: File System user having access to volume data. For Unix, this is the
- user's uid and gid. For Windows, this is the user's username. Note that the Unix and Windows
- user details are mutually exclusive, meaning one or other must be supplied, but not both.
- :vartype file_system_user: ~azure.mgmt.netapp.models.FileSystemUser
- :ivar provisioning_state: Provisioning state of the resource. Known values are: "Accepted",
- "Creating", "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
- :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
- :ivar status: The bucket credentials status. There states:
+class BackupVaultProperties(_Model):
+ """Backup Vault properties.
- "NoCredentialsSet": Access and Secret key pair have not been generated.
- "CredentialsExpired": Access and Secret key pair have expired.
- "Active": The certificate has been installed and credentials are unexpired. Known values are:
- "NoCredentialsSet", "CredentialsExpired", and "Active".
- :vartype status: str or ~azure.mgmt.netapp.models.CredentialsStatus
- :ivar server: Properties of the server managing the lifecycle of volume buckets.
- :vartype server: ~azure.mgmt.netapp.models.BucketServerProperties
- :ivar permissions: Access permissions for the bucket. Either ReadOnly or ReadWrite. The default
- is ReadOnly if no value is provided during bucket creation. Known values are: "ReadOnly" and
- "ReadWrite".
- :vartype permissions: str or ~azure.mgmt.netapp.models.BucketPermissions
- :ivar akv_details: Specifies the Azure Key Vault settings. These are used when
- a) retrieving the bucket server certificate, and
- b) storing the bucket credentials
+ :ivar provisioning_state: Azure lifecycle management.
+ :vartype provisioning_state: str
+ """
- Notes:
+ provisioning_state: Optional[str] = rest_field(name="provisioningState", visibility=["read"])
+ """Azure lifecycle management."""
+class BindPasswordAkvConfig(_Model):
+ """The Azure Key Vault configuration where the Bind DN (Distinguished Name) user password is
+ stored.
- 1. If a bucket certificate was previously provided directly using the certificateObject
- property, it is possible to subsequently use the Azure Key Vault for certificate management by
- using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
- longer possible to provide the certificate directly via the certificateObject property.
- 2. These properties are mutually exclusive with the server.certificateObject property.
- :vartype akv_details: ~azure.mgmt.netapp.models.AzureKeyVaultDetails
+ :ivar azure_key_vault_uri: The Azure Key Vault URI where the Bind DN user password is stored.
+ Required.
+ :vartype azure_key_vault_uri: str
+ :ivar secret_name: The name of the secret in Azure Key Vault that contains the Bind DN user
+ password. Required.
+ :vartype secret_name: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault.
+ :vartype user_assigned_identity: str
"""
- path: Optional[str] = rest_field(visibility=["read", "create"])
- """The volume path mounted inside the bucket. The default is the root path '/' if no value is
- provided when the bucket is created."""
- file_system_user: Optional["_models.FileSystemUser"] = rest_field(
- name="fileSystemUser", visibility=["read", "create", "update", "delete", "query"]
- )
- """File System user having access to volume data. For Unix, this is the user's uid and gid. For
- Windows, this is the user's username. Note that the Unix and Windows user details are mutually
- exclusive, meaning one or other must be supplied, but not both."""
- provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
- name="provisioningState", visibility=["read"]
- )
- """Provisioning state of the resource. Known values are: \"Accepted\", \"Creating\", \"Patching\",
- \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
- status: Optional[Union[str, "_models.CredentialsStatus"]] = rest_field(visibility=["read"])
- """The bucket credentials status. There states:
-
- \"NoCredentialsSet\": Access and Secret key pair have not been generated.
- \"CredentialsExpired\": Access and Secret key pair have expired.
- \"Active\": The certificate has been installed and credentials are unexpired. Known values are:
- \"NoCredentialsSet\", \"CredentialsExpired\", and \"Active\"."""
- server: Optional["_models.BucketServerProperties"] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
- )
- """Properties of the server managing the lifecycle of volume buckets."""
- permissions: Optional[Union[str, "_models.BucketPermissions"]] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
+ azure_key_vault_uri: str = rest_field(
+ name="azureKeyVaultUri", visibility=["read", "create", "update", "delete", "query"]
)
- """Access permissions for the bucket. Either ReadOnly or ReadWrite. The default is ReadOnly if no
- value is provided during bucket creation. Known values are: \"ReadOnly\" and \"ReadWrite\"."""
- akv_details: Optional["_models.AzureKeyVaultDetails"] = rest_field(
- name="akvDetails", visibility=["read", "create", "update", "delete", "query"]
+ """The Azure Key Vault URI where the Bind DN user password is stored. Required."""
+ secret_name: str = rest_field(name="secretName", visibility=["read", "create", "update", "delete", "query"])
+ """The name of the secret in Azure Key Vault that contains the Bind DN user password. Required."""
+ user_assigned_identity: Optional[str] = rest_field(
+ name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
)
- """Specifies the Azure Key Vault settings. These are used when
- a) retrieving the bucket server certificate, and
- b) storing the bucket credentials
-
- Notes:
-
-
-
- 1. If a bucket certificate was previously provided directly using the certificateObject
- property, it is possible to subsequently use the Azure Key Vault for certificate management by
- using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
- longer possible to provide the certificate directly via the certificateObject property.
- 2. These properties are mutually exclusive with the server.certificateObject property."""
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault."""
@overload
def __init__(
self,
*,
- path: Optional[str] = None,
- file_system_user: Optional["_models.FileSystemUser"] = None,
- server: Optional["_models.BucketServerProperties"] = None,
- permissions: Optional[Union[str, "_models.BucketPermissions"]] = None,
- akv_details: Optional["_models.AzureKeyVaultDetails"] = None,
+ azure_key_vault_uri: str,
+ secret_name: str,
+ user_assigned_identity: Optional[str] = None,
) -> None: ...
@overload
@@ -1644,45 +1619,40 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class BucketServerPatchProperties(_Model):
- """Properties of the server managing the lifecycle of volume buckets.
+class BindPasswordAkvConfigPatch(_Model):
+ """The Azure Key Vault configuration where the Bind DN (Distinguished Name) user password is
+ stored.
- :ivar fqdn: The host part of the bucket URL, resolving to the bucket IP address and allowed by
- the server certificate.
- :vartype fqdn: str
- :ivar certificate_object: The base64-encoded contents of a PEM file, which includes both the
- bucket server's certificate and private key. It is generated by the end user and allows the
- user to access volume data in a read-only manner. Note: This is only used when Azure Key Vault
- is not configured. This property is mutually exclusive with the Azure Key Vault 'akv'
- properties.
- :vartype certificate_object: str
- :ivar on_certificate_conflict_action: Action to take when there is a certificate conflict.
- Possible values include: 'Update', 'Fail'. Known values are: "Update" and "Fail".
- :vartype on_certificate_conflict_action: str or
- ~azure.mgmt.netapp.models.OnCertificateConflictAction
+ :ivar azure_key_vault_uri: The Azure Key Vault URI where the Bind DN user password is stored.
+ :vartype azure_key_vault_uri: str
+ :ivar secret_name: The name of the secret in Azure Key Vault that contains the Bind DN user
+ password.
+ :vartype secret_name: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault.
+ :vartype user_assigned_identity: str
"""
- fqdn: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """The host part of the bucket URL, resolving to the bucket IP address and allowed by the server
- certificate."""
- certificate_object: Optional[str] = rest_field(name="certificateObject", visibility=["create", "update"])
- """The base64-encoded contents of a PEM file, which includes both the bucket server's certificate
- and private key. It is generated by the end user and allows the user to access volume data in a
- read-only manner. Note: This is only used when Azure Key Vault is not configured. This property
- is mutually exclusive with the Azure Key Vault 'akv' properties."""
- on_certificate_conflict_action: Optional[Union[str, "_models.OnCertificateConflictAction"]] = rest_field(
- name="onCertificateConflictAction", visibility=["read", "create", "update", "delete", "query"]
+ azure_key_vault_uri: Optional[str] = rest_field(
+ name="azureKeyVaultUri", visibility=["read", "create", "update", "delete", "query"]
)
- """Action to take when there is a certificate conflict. Possible values include: 'Update', 'Fail'.
- Known values are: \"Update\" and \"Fail\"."""
+ """The Azure Key Vault URI where the Bind DN user password is stored."""
+ secret_name: Optional[str] = rest_field(
+ name="secretName", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The name of the secret in Azure Key Vault that contains the Bind DN user password."""
+ user_assigned_identity: Optional[str] = rest_field(
+ name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault."""
@overload
def __init__(
self,
*,
- fqdn: Optional[str] = None,
- certificate_object: Optional[str] = None,
- on_certificate_conflict_action: Optional[Union[str, "_models.OnCertificateConflictAction"]] = None,
+ azure_key_vault_uri: Optional[str] = None,
+ secret_name: Optional[str] = None,
+ user_assigned_identity: Optional[str] = None,
) -> None: ...
@overload
@@ -1696,60 +1666,30 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class BucketServerProperties(_Model):
- """Properties of the server managing the lifecycle of volume buckets.
+class BreakFileLocksRequest(_Model):
+ """Break file locks request.
- :ivar fqdn: The host part of the bucket URL, resolving to the bucket IP address and allowed by
- the server certificate.
- :vartype fqdn: str
- :ivar certificate_common_name: Certificate Common Name taken from the certificate installed on
- the bucket server.
- :vartype certificate_common_name: str
- :ivar certificate_expiry_date: The bucket server's certificate expiry date.
- :vartype certificate_expiry_date: ~datetime.datetime
- :ivar ip_address: The bucket server's IPv4 address.
- :vartype ip_address: str
- :ivar certificate_object: The base64-encoded contents of a PEM file, which includes both the
- bucket server's certificate and private key. It is generated by the end user and allows the
- user to access volume data in a read-only manner. Note: This is only used when Azure Key Vault
- is not configured. This property is mutually exclusive with the Azure Key Vault 'akv'
- properties.
- :vartype certificate_object: str
- :ivar on_certificate_conflict_action: Action to take when there is a certificate conflict.
- Possible values include: 'Update', 'Fail'. Known values are: "Update" and "Fail".
- :vartype on_certificate_conflict_action: str or
- ~azure.mgmt.netapp.models.OnCertificateConflictAction
+ :ivar client_ip: To clear file locks on a volume for a particular client.
+ :vartype client_ip: str
+ :ivar confirm_running_disruptive_operation: Break File locks could be a disruptive operation
+ for application as locks on the volume will be broken, if want to process, set to true.
+ :vartype confirm_running_disruptive_operation: bool
"""
- fqdn: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """The host part of the bucket URL, resolving to the bucket IP address and allowed by the server
- certificate."""
- certificate_common_name: Optional[str] = rest_field(name="certificateCommonName", visibility=["read"])
- """Certificate Common Name taken from the certificate installed on the bucket server."""
- certificate_expiry_date: Optional[datetime.datetime] = rest_field(
- name="certificateExpiryDate", visibility=["read"], format="rfc3339"
- )
- """The bucket server's certificate expiry date."""
- ip_address: Optional[str] = rest_field(name="ipAddress", visibility=["read"])
- """The bucket server's IPv4 address."""
- certificate_object: Optional[str] = rest_field(name="certificateObject", visibility=["create", "update"])
- """The base64-encoded contents of a PEM file, which includes both the bucket server's certificate
- and private key. It is generated by the end user and allows the user to access volume data in a
- read-only manner. Note: This is only used when Azure Key Vault is not configured. This property
- is mutually exclusive with the Azure Key Vault 'akv' properties."""
- on_certificate_conflict_action: Optional[Union[str, "_models.OnCertificateConflictAction"]] = rest_field(
- name="onCertificateConflictAction", visibility=["read", "create", "update", "delete", "query"]
+ client_ip: Optional[str] = rest_field(name="clientIp", visibility=["read", "create", "update", "delete", "query"])
+ """To clear file locks on a volume for a particular client."""
+ confirm_running_disruptive_operation: Optional[bool] = rest_field(
+ name="confirmRunningDisruptiveOperation", visibility=["read", "create", "update", "delete", "query"]
)
- """Action to take when there is a certificate conflict. Possible values include: 'Update', 'Fail'.
- Known values are: \"Update\" and \"Fail\"."""
+ """Break File locks could be a disruptive operation for application as locks on the volume will be
+ broken, if want to process, set to true."""
@overload
def __init__(
self,
*,
- fqdn: Optional[str] = None,
- certificate_object: Optional[str] = None,
- on_certificate_conflict_action: Optional[Union[str, "_models.OnCertificateConflictAction"]] = None,
+ client_ip: Optional[str] = None,
+ confirm_running_disruptive_operation: Optional[bool] = None,
) -> None: ...
@overload
@@ -1763,8 +1703,40 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class Cache(TrackedResource):
- """Cache resource.
+class BreakReplicationRequest(_Model):
+ """Break replication request.
+
+ :ivar force_break_replication: If replication is in status transferring and you want to force
+ break the replication, set to true.
+ :vartype force_break_replication: bool
+ """
+
+ force_break_replication: Optional[bool] = rest_field(
+ name="forceBreakReplication", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """If replication is in status transferring and you want to force break the replication, set to
+ true."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ force_break_replication: Optional[bool] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class Bucket(ProxyResource):
+ """Bucket resource.
:ivar id: Fully qualified resource ID for the resource. Ex -
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
@@ -1777,39 +1749,30 @@ class Cache(TrackedResource):
:ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
information.
:vartype system_data: ~azure.mgmt.netapp.models.SystemData
- :ivar tags: Resource tags.
- :vartype tags: dict[str, str]
- :ivar location: The geo-location where the resource lives. Required.
- :vartype location: str
- :ivar properties: Cache properties. Required.
- :vartype properties: ~azure.mgmt.netapp.models.CacheProperties
- :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
- the normal etag convention. Entity tags are used for comparing two or more entities from the
- same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
- (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
- :vartype etag: str
- :ivar zones: The availability zones.
- :vartype zones: list[str]
+ :ivar properties: Bucket properties.
+ :vartype properties: ~azure.mgmt.netapp.models.BucketProperties
"""
- properties: "_models.CacheProperties" = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Cache properties. Required."""
- etag: Optional[str] = rest_field(visibility=["read"])
- """\"If etag is provided in the response body, it may also be provided as a header per the normal
- etag convention. Entity tags are used for comparing two or more entities from the same
- requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
- 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")."""
- zones: Optional[list[str]] = rest_field(visibility=["read", "create"])
- """The availability zones."""
+ properties: Optional["_models.BucketProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Bucket properties."""
+
+ __flattened_items = [
+ "path",
+ "file_system_user",
+ "provisioning_state",
+ "status",
+ "server",
+ "permissions",
+ "akv_details",
+ ]
@overload
def __init__(
self,
*,
- location: str,
- properties: "_models.CacheProperties",
- tags: Optional[dict[str, str]] = None,
- zones: Optional[list[str]] = None,
+ properties: Optional["_models.BucketProperties"] = None,
) -> None: ...
@overload
@@ -1820,241 +1783,3084 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
+ _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
+ for k, v in _flattened_input.items():
+ setattr(self, k, v)
+ def __getattr__(self, name: str) -> Any:
+ if name in self.__flattened_items:
+ if self.properties is None:
+ return None
+ return getattr(self.properties, name)
+ raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
-class CacheMountTargetProperties(_Model):
- """Contains all the information needed to mount a cache.
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key in self.__flattened_items:
+ if self.properties is None:
+ self.properties = self._attr_to_rest_field["properties"]._class_type()
+ setattr(self.properties, key, value)
+ else:
+ super().__setattr__(key, value)
- :ivar mount_target_id: UUID v4 used to identify the MountTarget.
- :vartype mount_target_id: str
- :ivar ip_address: The mount target's IPv4 address, used to mount the cache.
- :vartype ip_address: str
- :ivar smb_server_fqdn: The SMB server's Fully Qualified Domain Name, FQDN.
- :vartype smb_server_fqdn: str
+
+class BucketCredentialsExpiry(_Model):
+ """The bucket's Access and Secret key pair Expiry Time expressed as the number of days from now.
+
+ :ivar key_pair_expiry_days: The number of days from now until the newly generated Access and
+ Secret key pair will expire.
+ :vartype key_pair_expiry_days: int
"""
- mount_target_id: Optional[str] = rest_field(name="mountTargetId", visibility=["read"])
- """UUID v4 used to identify the MountTarget."""
- ip_address: Optional[str] = rest_field(name="ipAddress", visibility=["read"])
- """The mount target's IPv4 address, used to mount the cache."""
- smb_server_fqdn: Optional[str] = rest_field(name="smbServerFqdn", visibility=["read"])
- """The SMB server's Fully Qualified Domain Name, FQDN."""
+ key_pair_expiry_days: Optional[int] = rest_field(
+ name="keyPairExpiryDays", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The number of days from now until the newly generated Access and Secret key pair will expire."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ key_pair_expiry_days: Optional[int] = None,
+ ) -> None: ...
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
-class CacheProperties(_Model):
- """Cache resource properties.
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
- :ivar file_path: The file path of the Cache. Required.
- :vartype file_path: str
- :ivar size: Maximum storage quota allowed for a file system in bytes. Valid values are in the
- range 50GiB to 1PiB. Values expressed in bytes as multiples of 1GiB. Required.
- :vartype size: int
- :ivar export_policy: Set of export policy rules.
- :vartype export_policy: ~azure.mgmt.netapp.models.CachePropertiesExportPolicy
- :ivar protocol_types: Set of supported protocol types, which include NFSv3, NFSv4 and SMB
- protocol.
- :vartype protocol_types: list[str or ~azure.mgmt.netapp.models.ProtocolTypes]
- :ivar provisioning_state: Azure lifecycle management. Known values are: "Creating", "Updating",
- "Deleting", "Failed", "Succeeded", and "Canceled".
- :vartype provisioning_state: str or ~azure.mgmt.netapp.models.CacheProvisioningState
- :ivar cache_state: Azure NetApp Files Cache lifecycle management. Known values are:
- "ClusterPeeringOfferSent", "VserverPeeringOfferSent", "Creating", "Succeeded", and "Failed".
- :vartype cache_state: str or ~azure.mgmt.netapp.models.CacheLifeCycleState
- :ivar cache_subnet_resource_id: The Azure Resource URI for a delegated cache subnet that will
- be used to allocate data IPs. Required.
- :vartype cache_subnet_resource_id: str
- :ivar peering_subnet_resource_id: The Azure Resource URI for a delegated subnet that will be
- used for ANF Intercluster Interface IP addresses. Required.
- :vartype peering_subnet_resource_id: str
- :ivar mount_targets: List of mount targets that can be used to mount this cache.
- :vartype mount_targets: list[~azure.mgmt.netapp.models.CacheMountTargetProperties]
- :ivar kerberos: Describe if a cache is Kerberos enabled. Known values are: "Disabled" and
- "Enabled".
- :vartype kerberos: str or ~azure.mgmt.netapp.models.KerberosState
- :ivar smb_settings: SMB information for the cache.
- :vartype smb_settings: ~azure.mgmt.netapp.models.SmbSettings
- :ivar throughput_mibps: Maximum throughput in MiB/s that can be achieved by this cache volume
- and this will be accepted as input only for manual qosType cache.
- :vartype throughput_mibps: float
- :ivar actual_throughput_mibps: Actual throughput in MiB/s for auto qosType volumes calculated
- based on size and serviceLevel.
- :vartype actual_throughput_mibps: float
- :ivar encryption_key_source: Source of key used to encrypt data in the cache. Applicable if
- NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values
- (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'. Required. Known values are:
- "Microsoft.NetApp" and "Microsoft.KeyVault".
- :vartype encryption_key_source: str or ~azure.mgmt.netapp.models.EncryptionKeySource
- :ivar key_vault_private_endpoint_resource_id: The resource ID of private endpoint for KeyVault.
- It must reside in the same VNET as the volume. Only applicable if encryptionKeySource =
- 'Microsoft.KeyVault'.
- :vartype key_vault_private_endpoint_resource_id: str
- :ivar maximum_number_of_files: Maximum number of files allowed.
- :vartype maximum_number_of_files: int
- :ivar encryption: Specifies if the cache is encryption or not. Known values are: "Disabled" and
- "Enabled".
- :vartype encryption: str or ~azure.mgmt.netapp.models.EncryptionState
- :ivar language: Language supported for volume. Known values are: "c.utf-8", "utf8mb4", "ar",
- "ar.utf-8", "hr", "hr.utf-8", "cs", "cs.utf-8", "da", "da.utf-8", "nl", "nl.utf-8", "en",
- "en.utf-8", "fi", "fi.utf-8", "fr", "fr.utf-8", "de", "de.utf-8", "he", "he.utf-8", "hu",
- "hu.utf-8", "it", "it.utf-8", "ja", "ja.utf-8", "ja-v1", "ja-v1.utf-8", "ja-jp.pck",
- "ja-jp.pck.utf-8", "ja-jp.932", "ja-jp.932.utf-8", "ja-jp.pck-v2", "ja-jp.pck-v2.utf-8", "ko",
- "ko.utf-8", "no", "no.utf-8", "pl", "pl.utf-8", "pt", "pt.utf-8", "c", "ro", "ro.utf-8", "ru",
- "ru.utf-8", "zh", "zh.utf-8", "zh.gbk", "zh.gbk.utf-8", "zh-tw.big5", "zh-tw.big5.utf-8",
- "zh-tw", "zh-tw.utf-8", "sk", "sk.utf-8", "sl", "sl.utf-8", "es", "es.utf-8", "sv", "sv.utf-8",
- "tr", "tr.utf-8", "en-us", and "en-us.utf-8".
- :vartype language: str or ~azure.mgmt.netapp.models.VolumeLanguage
- :ivar ldap: Specifies whether LDAP is enabled or not for flexcache volume. Known values are:
- "Disabled" and "Enabled".
- :vartype ldap: str or ~azure.mgmt.netapp.models.LdapState
- :ivar ldap_server_type: Specifies the type of LDAP server for flexcache volume. Known values
- are: "ActiveDirectory" and "OpenLDAP".
- :vartype ldap_server_type: str or ~azure.mgmt.netapp.models.LdapServerType
- :ivar origin_cluster_information: Origin cluster information. Required.
- :vartype origin_cluster_information: ~azure.mgmt.netapp.models.OriginClusterInformation
- :ivar cifs_change_notifications: Flag indicating whether a CIFS change notification is enabled
- for the cache. Known values are: "Disabled" and "Enabled".
- :vartype cifs_change_notifications: str or ~azure.mgmt.netapp.models.CifsChangeNotifyState
- :ivar global_file_locking: Flag indicating whether the global file lock is enabled for the
- cache. Known values are: "Disabled" and "Enabled".
- :vartype global_file_locking: str or ~azure.mgmt.netapp.models.GlobalFileLockingState
- :ivar write_back: Flag indicating whether writeback is enabled for the cache. Known values are:
- "Disabled" and "Enabled".
- :vartype write_back: str or ~azure.mgmt.netapp.models.EnableWriteBackState
- :ivar file_access_logs: Flag indicating whether file access logs are enabled for the Cache,
- based on active diagnostic settings present on the Cache. Known values are: "Enabled" and
- "Disabled".
- :vartype file_access_logs: str or ~azure.mgmt.netapp.models.CacheFileAccessLogs
+
+class BucketGenerateCredentials(_Model):
+ """Bucket Access Key, Secret Key, and Expiry date and time of the key pair.
+
+ :ivar access_key: The Access Key that is required along with the Secret Key to access the
+ bucket.
+ :vartype access_key: str
+ :ivar secret_key: The Secret Key that is required along with the Access Key to access the
+ bucket.
+ :vartype secret_key: str
+ :ivar key_pair_expiry: The bucket's Access and Secret key pair expiry date and time (in UTC).
+ :vartype key_pair_expiry: ~datetime.datetime
"""
- file_path: str = rest_field(name="filePath", visibility=["read", "create"])
- """The file path of the Cache. Required."""
- size: int = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Maximum storage quota allowed for a file system in bytes. Valid values are in the range 50GiB
- to 1PiB. Values expressed in bytes as multiples of 1GiB. Required."""
- export_policy: Optional["_models.CachePropertiesExportPolicy"] = rest_field(
- name="exportPolicy", visibility=["read", "create", "update", "delete", "query"]
- )
- """Set of export policy rules."""
- protocol_types: Optional[list[Union[str, "_models.ProtocolTypes"]]] = rest_field(
- name="protocolTypes", visibility=["read", "create", "update", "delete", "query"]
- )
- """Set of supported protocol types, which include NFSv3, NFSv4 and SMB protocol."""
- provisioning_state: Optional[Union[str, "_models.CacheProvisioningState"]] = rest_field(
- name="provisioningState", visibility=["read"]
+ access_key: Optional[str] = rest_field(name="accessKey", visibility=["read"])
+ """The Access Key that is required along with the Secret Key to access the bucket."""
+ secret_key: Optional[str] = rest_field(name="secretKey", visibility=["read"])
+ """The Secret Key that is required along with the Access Key to access the bucket."""
+ key_pair_expiry: Optional[datetime.datetime] = rest_field(
+ name="keyPairExpiry", visibility=["read"], format="rfc3339"
)
- """Azure lifecycle management. Known values are: \"Creating\", \"Updating\", \"Deleting\",
+ """The bucket's Access and Secret key pair expiry date and time (in UTC)."""
+
+
+class BucketPatch(ProxyResource):
+ """Bucket resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar properties: Bucket properties.
+ :vartype properties: ~azure.mgmt.netapp.models.BucketPatchProperties
+ """
+
+ properties: Optional["_models.BucketPatchProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Bucket properties."""
+
+ __flattened_items = ["file_system_user", "provisioning_state", "server", "permissions", "akv_details"]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ properties: Optional["_models.BucketPatchProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
+ super().__init__(*args, **kwargs)
+ for k, v in _flattened_input.items():
+ setattr(self, k, v)
+
+ def __getattr__(self, name: str) -> Any:
+ if name in self.__flattened_items:
+ if self.properties is None:
+ return None
+ return getattr(self.properties, name)
+ raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
+
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key in self.__flattened_items:
+ if self.properties is None:
+ self.properties = self._attr_to_rest_field["properties"]._class_type()
+ setattr(self.properties, key, value)
+ else:
+ super().__setattr__(key, value)
+
+
+class BucketPatchProperties(_Model):
+ """Bucket resource properties for a Patch operation.
+
+ :ivar file_system_user: File System user having access to volume data. For Unix, this is the
+ user's uid and gid. For Windows, this is the user's username. Note that the Unix and Windows
+ user details are mutually exclusive, meaning one or other must be supplied, but not both.
+ :vartype file_system_user: ~azure.mgmt.netapp.models.FileSystemUser
+ :ivar provisioning_state: Provisioning state of the resource. Known values are: "Accepted",
+ "Creating", "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ :ivar server: Properties of the server managing the lifecycle of volume buckets.
+ :vartype server: ~azure.mgmt.netapp.models.BucketServerPatchProperties
+ :ivar permissions: Access permissions for the bucket. Either ReadOnly or ReadWrite. Known
+ values are: "ReadOnly" and "ReadWrite".
+ :vartype permissions: str or ~azure.mgmt.netapp.models.BucketPatchPermissions
+ :ivar akv_details: Specifies the Azure Key Vault settings. These are used when
+ a) retrieving the bucket server certificate, and
+ b) storing the bucket credentials
+
+ Notes:
+
+
+
+ 1. If a bucket certificate was previously provided directly using the certificateObject
+ property, it is possible to subsequently use the Azure Key Vault for certificate management by
+ using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
+ longer possible to provide the certificate directly via the certificateObject property.
+ 2. These properties are mutually exclusive with the server.certificateObject property.
+ :vartype akv_details: ~azure.mgmt.netapp.models.AzureKeyVaultDetails
+ """
+
+ file_system_user: Optional["_models.FileSystemUser"] = rest_field(
+ name="fileSystemUser", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """File System user having access to volume data. For Unix, this is the user's uid and gid. For
+ Windows, this is the user's username. Note that the Unix and Windows user details are mutually
+ exclusive, meaning one or other must be supplied, but not both."""
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Provisioning state of the resource. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ server: Optional["_models.BucketServerPatchProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Properties of the server managing the lifecycle of volume buckets."""
+ permissions: Optional[Union[str, "_models.BucketPatchPermissions"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Access permissions for the bucket. Either ReadOnly or ReadWrite. Known values are: \"ReadOnly\"
+ and \"ReadWrite\"."""
+ akv_details: Optional["_models.AzureKeyVaultDetails"] = rest_field(
+ name="akvDetails", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Specifies the Azure Key Vault settings. These are used when
+ a) retrieving the bucket server certificate, and
+ b) storing the bucket credentials
+
+ Notes:
+
+
+
+ 1. If a bucket certificate was previously provided directly using the certificateObject
+ property, it is possible to subsequently use the Azure Key Vault for certificate management by
+ using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
+ longer possible to provide the certificate directly via the certificateObject property.
+ 2. These properties are mutually exclusive with the server.certificateObject property."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ file_system_user: Optional["_models.FileSystemUser"] = None,
+ server: Optional["_models.BucketServerPatchProperties"] = None,
+ permissions: Optional[Union[str, "_models.BucketPatchPermissions"]] = None,
+ akv_details: Optional["_models.AzureKeyVaultDetails"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class BucketProperties(_Model):
+ """Bucket resource properties.
+
+ :ivar path: The volume path mounted inside the bucket. The default is the root path '/' if no
+ value is provided when the bucket is created.
+ :vartype path: str
+ :ivar file_system_user: File System user having access to volume data. For Unix, this is the
+ user's uid and gid. For Windows, this is the user's username. Note that the Unix and Windows
+ user details are mutually exclusive, meaning one or other must be supplied, but not both.
+ :vartype file_system_user: ~azure.mgmt.netapp.models.FileSystemUser
+ :ivar provisioning_state: Provisioning state of the resource. Known values are: "Accepted",
+ "Creating", "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ :ivar status: The bucket credentials status. There states:
+
+ "NoCredentialsSet": Access and Secret key pair have not been generated.
+ "CredentialsExpired": Access and Secret key pair have expired.
+ "Active": The certificate has been installed and credentials are unexpired. Known values are:
+ "NoCredentialsSet", "CredentialsExpired", and "Active".
+ :vartype status: str or ~azure.mgmt.netapp.models.CredentialsStatus
+ :ivar server: Properties of the server managing the lifecycle of volume buckets.
+ :vartype server: ~azure.mgmt.netapp.models.BucketServerProperties
+ :ivar permissions: Access permissions for the bucket. Either ReadOnly or ReadWrite. The default
+ is ReadOnly if no value is provided during bucket creation. Known values are: "ReadOnly" and
+ "ReadWrite".
+ :vartype permissions: str or ~azure.mgmt.netapp.models.BucketPermissions
+ :ivar akv_details: Specifies the Azure Key Vault settings. These are used when
+ a) retrieving the bucket server certificate, and
+ b) storing the bucket credentials
+
+ Notes:
+
+
+
+ 1. If a bucket certificate was previously provided directly using the certificateObject
+ property, it is possible to subsequently use the Azure Key Vault for certificate management by
+ using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
+ longer possible to provide the certificate directly via the certificateObject property.
+ 2. These properties are mutually exclusive with the server.certificateObject property.
+ :vartype akv_details: ~azure.mgmt.netapp.models.AzureKeyVaultDetails
+ """
+
+ path: Optional[str] = rest_field(visibility=["read", "create"])
+ """The volume path mounted inside the bucket. The default is the root path '/' if no value is
+ provided when the bucket is created."""
+ file_system_user: Optional["_models.FileSystemUser"] = rest_field(
+ name="fileSystemUser", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """File System user having access to volume data. For Unix, this is the user's uid and gid. For
+ Windows, this is the user's username. Note that the Unix and Windows user details are mutually
+ exclusive, meaning one or other must be supplied, but not both."""
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Provisioning state of the resource. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ status: Optional[Union[str, "_models.CredentialsStatus"]] = rest_field(visibility=["read"])
+ """The bucket credentials status. There states:
+
+ \"NoCredentialsSet\": Access and Secret key pair have not been generated.
+ \"CredentialsExpired\": Access and Secret key pair have expired.
+ \"Active\": The certificate has been installed and credentials are unexpired. Known values are:
+ \"NoCredentialsSet\", \"CredentialsExpired\", and \"Active\"."""
+ server: Optional["_models.BucketServerProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Properties of the server managing the lifecycle of volume buckets."""
+ permissions: Optional[Union[str, "_models.BucketPermissions"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Access permissions for the bucket. Either ReadOnly or ReadWrite. The default is ReadOnly if no
+ value is provided during bucket creation. Known values are: \"ReadOnly\" and \"ReadWrite\"."""
+ akv_details: Optional["_models.AzureKeyVaultDetails"] = rest_field(
+ name="akvDetails", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Specifies the Azure Key Vault settings. These are used when
+ a) retrieving the bucket server certificate, and
+ b) storing the bucket credentials
+
+ Notes:
+
+
+
+ 1. If a bucket certificate was previously provided directly using the certificateObject
+ property, it is possible to subsequently use the Azure Key Vault for certificate management by
+ using these 'akvDetails' properties. However, once Azure Key Vault is configured, it is no
+ longer possible to provide the certificate directly via the certificateObject property.
+ 2. These properties are mutually exclusive with the server.certificateObject property."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ path: Optional[str] = None,
+ file_system_user: Optional["_models.FileSystemUser"] = None,
+ server: Optional["_models.BucketServerProperties"] = None,
+ permissions: Optional[Union[str, "_models.BucketPermissions"]] = None,
+ akv_details: Optional["_models.AzureKeyVaultDetails"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class BucketServerPatchProperties(_Model):
+ """Properties of the server managing the lifecycle of volume buckets.
+
+ :ivar fqdn: The host part of the bucket URL, resolving to the bucket IP address and allowed by
+ the server certificate.
+ :vartype fqdn: str
+ :ivar certificate_object: The base64-encoded contents of a PEM file, which includes both the
+ bucket server's certificate and private key. It is generated by the end user and allows the
+ user to access volume data in a read-only manner. Note: This is only used when Azure Key Vault
+ is not configured. This property is mutually exclusive with the Azure Key Vault 'akv'
+ properties.
+ :vartype certificate_object: str
+ :ivar on_certificate_conflict_action: Action to take when there is a certificate conflict.
+ Possible values include: 'Update', 'Fail'. Known values are: "Update" and "Fail".
+ :vartype on_certificate_conflict_action: str or
+ ~azure.mgmt.netapp.models.OnCertificateConflictAction
+ """
+
+ fqdn: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """The host part of the bucket URL, resolving to the bucket IP address and allowed by the server
+ certificate."""
+ certificate_object: Optional[str] = rest_field(name="certificateObject", visibility=["create", "update"])
+ """The base64-encoded contents of a PEM file, which includes both the bucket server's certificate
+ and private key. It is generated by the end user and allows the user to access volume data in a
+ read-only manner. Note: This is only used when Azure Key Vault is not configured. This property
+ is mutually exclusive with the Azure Key Vault 'akv' properties."""
+ on_certificate_conflict_action: Optional[Union[str, "_models.OnCertificateConflictAction"]] = rest_field(
+ name="onCertificateConflictAction", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Action to take when there is a certificate conflict. Possible values include: 'Update', 'Fail'.
+ Known values are: \"Update\" and \"Fail\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ fqdn: Optional[str] = None,
+ certificate_object: Optional[str] = None,
+ on_certificate_conflict_action: Optional[Union[str, "_models.OnCertificateConflictAction"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class BucketServerProperties(_Model):
+ """Properties of the server managing the lifecycle of volume buckets.
+
+ :ivar fqdn: The host part of the bucket URL, resolving to the bucket IP address and allowed by
+ the server certificate.
+ :vartype fqdn: str
+ :ivar certificate_common_name: Certificate Common Name taken from the certificate installed on
+ the bucket server.
+ :vartype certificate_common_name: str
+ :ivar certificate_expiry_date: The bucket server's certificate expiry date.
+ :vartype certificate_expiry_date: ~datetime.datetime
+ :ivar ip_address: The bucket server's IPv4 address.
+ :vartype ip_address: str
+ :ivar certificate_object: The base64-encoded contents of a PEM file, which includes both the
+ bucket server's certificate and private key. It is generated by the end user and allows the
+ user to access volume data in a read-only manner. Note: This is only used when Azure Key Vault
+ is not configured. This property is mutually exclusive with the Azure Key Vault 'akv'
+ properties.
+ :vartype certificate_object: str
+ :ivar on_certificate_conflict_action: Action to take when there is a certificate conflict.
+ Possible values include: 'Update', 'Fail'. Known values are: "Update" and "Fail".
+ :vartype on_certificate_conflict_action: str or
+ ~azure.mgmt.netapp.models.OnCertificateConflictAction
+ """
+
+ fqdn: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """The host part of the bucket URL, resolving to the bucket IP address and allowed by the server
+ certificate."""
+ certificate_common_name: Optional[str] = rest_field(name="certificateCommonName", visibility=["read"])
+ """Certificate Common Name taken from the certificate installed on the bucket server."""
+ certificate_expiry_date: Optional[datetime.datetime] = rest_field(
+ name="certificateExpiryDate", visibility=["read"], format="rfc3339"
+ )
+ """The bucket server's certificate expiry date."""
+ ip_address: Optional[str] = rest_field(name="ipAddress", visibility=["read"])
+ """The bucket server's IPv4 address."""
+ certificate_object: Optional[str] = rest_field(name="certificateObject", visibility=["create", "update"])
+ """The base64-encoded contents of a PEM file, which includes both the bucket server's certificate
+ and private key. It is generated by the end user and allows the user to access volume data in a
+ read-only manner. Note: This is only used when Azure Key Vault is not configured. This property
+ is mutually exclusive with the Azure Key Vault 'akv' properties."""
+ on_certificate_conflict_action: Optional[Union[str, "_models.OnCertificateConflictAction"]] = rest_field(
+ name="onCertificateConflictAction", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Action to take when there is a certificate conflict. Possible values include: 'Update', 'Fail'.
+ Known values are: \"Update\" and \"Fail\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ fqdn: Optional[str] = None,
+ certificate_object: Optional[str] = None,
+ on_certificate_conflict_action: Optional[Union[str, "_models.OnCertificateConflictAction"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class Cache(TrackedResource):
+ """Cache resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: Cache properties. Required.
+ :vartype properties: ~azure.mgmt.netapp.models.CacheProperties
+ :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
+ :vartype etag: str
+ :ivar zones: The availability zones.
+ :vartype zones: list[str]
+ """
+
+ properties: "_models.CacheProperties" = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Cache properties. Required."""
+ etag: Optional[str] = rest_field(visibility=["read"])
+ """\"If etag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")."""
+ zones: Optional[list[str]] = rest_field(visibility=["read", "create"])
+ """The availability zones."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ location: str,
+ properties: "_models.CacheProperties",
+ tags: Optional[dict[str, str]] = None,
+ zones: Optional[list[str]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CacheMountTargetProperties(_Model):
+ """Contains all the information needed to mount a cache.
+
+ :ivar mount_target_id: UUID v4 used to identify the MountTarget.
+ :vartype mount_target_id: str
+ :ivar ip_address: The mount target's IPv4 address, used to mount the cache.
+ :vartype ip_address: str
+ :ivar smb_server_fqdn: The SMB server's Fully Qualified Domain Name, FQDN.
+ :vartype smb_server_fqdn: str
+ """
+
+ mount_target_id: Optional[str] = rest_field(name="mountTargetId", visibility=["read"])
+ """UUID v4 used to identify the MountTarget."""
+ ip_address: Optional[str] = rest_field(name="ipAddress", visibility=["read"])
+ """The mount target's IPv4 address, used to mount the cache."""
+ smb_server_fqdn: Optional[str] = rest_field(name="smbServerFqdn", visibility=["read"])
+ """The SMB server's Fully Qualified Domain Name, FQDN."""
+
+
+class CacheProperties(_Model):
+ """Cache resource properties.
+
+ :ivar file_path: The file path of the Cache. Required.
+ :vartype file_path: str
+ :ivar size: Maximum storage quota allowed for a file system in bytes. Valid values are in the
+ range 50GiB to 1PiB. Values expressed in bytes as multiples of 1GiB. Required.
+ :vartype size: int
+ :ivar export_policy: Set of export policy rules.
+ :vartype export_policy: ~azure.mgmt.netapp.models.CachePropertiesExportPolicy
+ :ivar protocol_types: Set of supported protocol types, which include NFSv3, NFSv4 and SMB
+ protocol.
+ :vartype protocol_types: list[str or ~azure.mgmt.netapp.models.ProtocolTypes]
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Creating", "Updating",
+ "Deleting", "Failed", "Succeeded", and "Canceled".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.CacheProvisioningState
+ :ivar cache_state: Azure NetApp Files Cache lifecycle management. Known values are:
+ "ClusterPeeringOfferSent", "VserverPeeringOfferSent", "Creating", "Succeeded", and "Failed".
+ :vartype cache_state: str or ~azure.mgmt.netapp.models.CacheLifeCycleState
+ :ivar cache_subnet_resource_id: The Azure Resource URI for a delegated cache subnet that will
+ be used to allocate data IPs. Required.
+ :vartype cache_subnet_resource_id: str
+ :ivar peering_subnet_resource_id: The Azure Resource URI for a delegated subnet that will be
+ used for ANF Intercluster Interface IP addresses. Required.
+ :vartype peering_subnet_resource_id: str
+ :ivar mount_targets: List of mount targets that can be used to mount this cache.
+ :vartype mount_targets: list[~azure.mgmt.netapp.models.CacheMountTargetProperties]
+ :ivar kerberos: Describe if a cache is Kerberos enabled. Known values are: "Disabled" and
+ "Enabled".
+ :vartype kerberos: str or ~azure.mgmt.netapp.models.KerberosState
+ :ivar smb_settings: SMB information for the cache.
+ :vartype smb_settings: ~azure.mgmt.netapp.models.SmbSettings
+ :ivar throughput_mibps: Maximum throughput in MiB/s that can be achieved by this cache volume
+ and this will be accepted as input only for manual qosType cache.
+ :vartype throughput_mibps: float
+ :ivar actual_throughput_mibps: Actual throughput in MiB/s for auto qosType volumes calculated
+ based on size and serviceLevel.
+ :vartype actual_throughput_mibps: float
+ :ivar encryption_key_source: Source of key used to encrypt data in the cache. Applicable if
+ NetApp account has encryption.keySource = 'Microsoft.KeyVault'. Possible values
+ (case-insensitive) are: 'Microsoft.NetApp, Microsoft.KeyVault'. Required. Known values are:
+ "Microsoft.NetApp" and "Microsoft.KeyVault".
+ :vartype encryption_key_source: str or ~azure.mgmt.netapp.models.EncryptionKeySource
+ :ivar key_vault_private_endpoint_resource_id: The resource ID of private endpoint for KeyVault.
+ It must reside in the same VNET as the volume. Only applicable if encryptionKeySource =
+ 'Microsoft.KeyVault'.
+ :vartype key_vault_private_endpoint_resource_id: str
+ :ivar maximum_number_of_files: Maximum number of files allowed.
+ :vartype maximum_number_of_files: int
+ :ivar encryption: Specifies if the cache is encryption or not. Known values are: "Disabled" and
+ "Enabled".
+ :vartype encryption: str or ~azure.mgmt.netapp.models.EncryptionState
+ :ivar language: Language supported for volume. Known values are: "c.utf-8", "utf8mb4", "ar",
+ "ar.utf-8", "hr", "hr.utf-8", "cs", "cs.utf-8", "da", "da.utf-8", "nl", "nl.utf-8", "en",
+ "en.utf-8", "fi", "fi.utf-8", "fr", "fr.utf-8", "de", "de.utf-8", "he", "he.utf-8", "hu",
+ "hu.utf-8", "it", "it.utf-8", "ja", "ja.utf-8", "ja-v1", "ja-v1.utf-8", "ja-jp.pck",
+ "ja-jp.pck.utf-8", "ja-jp.932", "ja-jp.932.utf-8", "ja-jp.pck-v2", "ja-jp.pck-v2.utf-8", "ko",
+ "ko.utf-8", "no", "no.utf-8", "pl", "pl.utf-8", "pt", "pt.utf-8", "c", "ro", "ro.utf-8", "ru",
+ "ru.utf-8", "zh", "zh.utf-8", "zh.gbk", "zh.gbk.utf-8", "zh-tw.big5", "zh-tw.big5.utf-8",
+ "zh-tw", "zh-tw.utf-8", "sk", "sk.utf-8", "sl", "sl.utf-8", "es", "es.utf-8", "sv", "sv.utf-8",
+ "tr", "tr.utf-8", "en-us", and "en-us.utf-8".
+ :vartype language: str or ~azure.mgmt.netapp.models.VolumeLanguage
+ :ivar ldap: Specifies whether LDAP is enabled or not for flexcache volume. Known values are:
+ "Disabled" and "Enabled".
+ :vartype ldap: str or ~azure.mgmt.netapp.models.LdapState
+ :ivar ldap_server_type: Specifies the type of LDAP server for flexcache volume. Known values
+ are: "ActiveDirectory" and "OpenLDAP".
+ :vartype ldap_server_type: str or ~azure.mgmt.netapp.models.LdapServerType
+ :ivar origin_cluster_information: Origin cluster information. Required.
+ :vartype origin_cluster_information: ~azure.mgmt.netapp.models.OriginClusterInformation
+ :ivar cifs_change_notifications: Flag indicating whether a CIFS change notification is enabled
+ for the cache. Known values are: "Disabled" and "Enabled".
+ :vartype cifs_change_notifications: str or ~azure.mgmt.netapp.models.CifsChangeNotifyState
+ :ivar global_file_locking: Flag indicating whether the global file lock is enabled for the
+ cache. Known values are: "Disabled" and "Enabled".
+ :vartype global_file_locking: str or ~azure.mgmt.netapp.models.GlobalFileLockingState
+ :ivar write_back: Flag indicating whether writeback is enabled for the cache. Known values are:
+ "Disabled" and "Enabled".
+ :vartype write_back: str or ~azure.mgmt.netapp.models.EnableWriteBackState
+ :ivar file_access_logs: Flag indicating whether file access logs are enabled for the Cache,
+ based on active diagnostic settings present on the Cache. Known values are: "Enabled" and
+ "Disabled".
+ :vartype file_access_logs: str or ~azure.mgmt.netapp.models.CacheFileAccessLogs
+ """
+
+ file_path: str = rest_field(name="filePath", visibility=["read", "create"])
+ """The file path of the Cache. Required."""
+ size: int = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Maximum storage quota allowed for a file system in bytes. Valid values are in the range 50GiB
+ to 1PiB. Values expressed in bytes as multiples of 1GiB. Required."""
+ export_policy: Optional["_models.CachePropertiesExportPolicy"] = rest_field(
+ name="exportPolicy", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Set of export policy rules."""
+ protocol_types: Optional[list[Union[str, "_models.ProtocolTypes"]]] = rest_field(
+ name="protocolTypes", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Set of supported protocol types, which include NFSv3, NFSv4 and SMB protocol."""
+ provisioning_state: Optional[Union[str, "_models.CacheProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Creating\", \"Updating\", \"Deleting\",
\"Failed\", \"Succeeded\", and \"Canceled\"."""
cache_state: Optional[Union[str, "_models.CacheLifeCycleState"]] = rest_field(
name="cacheState", visibility=["read"]
)
- """Azure NetApp Files Cache lifecycle management. Known values are: \"ClusterPeeringOfferSent\",
- \"VserverPeeringOfferSent\", \"Creating\", \"Succeeded\", and \"Failed\"."""
- cache_subnet_resource_id: str = rest_field(name="cacheSubnetResourceId", visibility=["read", "create"])
- """The Azure Resource URI for a delegated cache subnet that will be used to allocate data IPs.
- Required."""
- peering_subnet_resource_id: str = rest_field(name="peeringSubnetResourceId", visibility=["read", "create"])
- """The Azure Resource URI for a delegated subnet that will be used for ANF Intercluster Interface
- IP addresses. Required."""
- mount_targets: Optional[list["_models.CacheMountTargetProperties"]] = rest_field(
- name="mountTargets", visibility=["read"]
+ """Azure NetApp Files Cache lifecycle management. Known values are: \"ClusterPeeringOfferSent\",
+ \"VserverPeeringOfferSent\", \"Creating\", \"Succeeded\", and \"Failed\"."""
+ cache_subnet_resource_id: str = rest_field(name="cacheSubnetResourceId", visibility=["read", "create"])
+ """The Azure Resource URI for a delegated cache subnet that will be used to allocate data IPs.
+ Required."""
+ peering_subnet_resource_id: str = rest_field(name="peeringSubnetResourceId", visibility=["read", "create"])
+ """The Azure Resource URI for a delegated subnet that will be used for ANF Intercluster Interface
+ IP addresses. Required."""
+ mount_targets: Optional[list["_models.CacheMountTargetProperties"]] = rest_field(
+ name="mountTargets", visibility=["read"]
+ )
+ """List of mount targets that can be used to mount this cache."""
+ kerberos: Optional[Union[str, "_models.KerberosState"]] = rest_field(visibility=["read", "create"])
+ """Describe if a cache is Kerberos enabled. Known values are: \"Disabled\" and \"Enabled\"."""
+ smb_settings: Optional["_models.SmbSettings"] = rest_field(
+ name="smbSettings", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """SMB information for the cache."""
+ throughput_mibps: Optional[float] = rest_field(
+ name="throughputMibps", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Maximum throughput in MiB/s that can be achieved by this cache volume and this will be accepted
+ as input only for manual qosType cache."""
+ actual_throughput_mibps: Optional[float] = rest_field(name="actualThroughputMibps", visibility=["read"])
+ """Actual throughput in MiB/s for auto qosType volumes calculated based on size and serviceLevel."""
+ encryption_key_source: Union[str, "_models.EncryptionKeySource"] = rest_field(
+ name="encryptionKeySource", visibility=["read", "create"]
+ )
+ """Source of key used to encrypt data in the cache. Applicable if NetApp account has
+ encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are:
+ 'Microsoft.NetApp, Microsoft.KeyVault'. Required. Known values are: \"Microsoft.NetApp\" and
+ \"Microsoft.KeyVault\"."""
+ key_vault_private_endpoint_resource_id: Optional[str] = rest_field(
+ name="keyVaultPrivateEndpointResourceId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the
+ volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'."""
+ maximum_number_of_files: Optional[int] = rest_field(name="maximumNumberOfFiles", visibility=["read"])
+ """Maximum number of files allowed."""
+ encryption: Optional[Union[str, "_models.EncryptionState"]] = rest_field(visibility=["read"])
+ """Specifies if the cache is encryption or not. Known values are: \"Disabled\" and \"Enabled\"."""
+ language: Optional[Union[str, "_models.VolumeLanguage"]] = rest_field(visibility=["read"])
+ """Language supported for volume. Known values are: \"c.utf-8\", \"utf8mb4\", \"ar\",
+ \"ar.utf-8\", \"hr\", \"hr.utf-8\", \"cs\", \"cs.utf-8\", \"da\", \"da.utf-8\", \"nl\",
+ \"nl.utf-8\", \"en\", \"en.utf-8\", \"fi\", \"fi.utf-8\", \"fr\", \"fr.utf-8\", \"de\",
+ \"de.utf-8\", \"he\", \"he.utf-8\", \"hu\", \"hu.utf-8\", \"it\", \"it.utf-8\", \"ja\",
+ \"ja.utf-8\", \"ja-v1\", \"ja-v1.utf-8\", \"ja-jp.pck\", \"ja-jp.pck.utf-8\", \"ja-jp.932\",
+ \"ja-jp.932.utf-8\", \"ja-jp.pck-v2\", \"ja-jp.pck-v2.utf-8\", \"ko\", \"ko.utf-8\", \"no\",
+ \"no.utf-8\", \"pl\", \"pl.utf-8\", \"pt\", \"pt.utf-8\", \"c\", \"ro\", \"ro.utf-8\", \"ru\",
+ \"ru.utf-8\", \"zh\", \"zh.utf-8\", \"zh.gbk\", \"zh.gbk.utf-8\", \"zh-tw.big5\",
+ \"zh-tw.big5.utf-8\", \"zh-tw\", \"zh-tw.utf-8\", \"sk\", \"sk.utf-8\", \"sl\", \"sl.utf-8\",
+ \"es\", \"es.utf-8\", \"sv\", \"sv.utf-8\", \"tr\", \"tr.utf-8\", \"en-us\", and
+ \"en-us.utf-8\"."""
+ ldap: Optional[Union[str, "_models.LdapState"]] = rest_field(visibility=["read", "create"])
+ """Specifies whether LDAP is enabled or not for flexcache volume. Known values are: \"Disabled\"
+ and \"Enabled\"."""
+ ldap_server_type: Optional[Union[str, "_models.LdapServerType"]] = rest_field(
+ name="ldapServerType", visibility=["read", "create"]
+ )
+ """Specifies the type of LDAP server for flexcache volume. Known values are: \"ActiveDirectory\"
+ and \"OpenLDAP\"."""
+ origin_cluster_information: "_models.OriginClusterInformation" = rest_field(
+ name="originClusterInformation", visibility=["read", "create"]
+ )
+ """Origin cluster information. Required."""
+ cifs_change_notifications: Optional[Union[str, "_models.CifsChangeNotifyState"]] = rest_field(
+ name="cifsChangeNotifications", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Flag indicating whether a CIFS change notification is enabled for the cache. Known values are:
+ \"Disabled\" and \"Enabled\"."""
+ global_file_locking: Optional[Union[str, "_models.GlobalFileLockingState"]] = rest_field(
+ name="globalFileLocking", visibility=["read", "create"]
+ )
+ """Flag indicating whether the global file lock is enabled for the cache. Known values are:
+ \"Disabled\" and \"Enabled\"."""
+ write_back: Optional[Union[str, "_models.EnableWriteBackState"]] = rest_field(
+ name="writeBack", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Flag indicating whether writeback is enabled for the cache. Known values are: \"Disabled\" and
+ \"Enabled\"."""
+ file_access_logs: Optional[Union[str, "_models.CacheFileAccessLogs"]] = rest_field(
+ name="fileAccessLogs", visibility=["read"]
+ )
+ """Flag indicating whether file access logs are enabled for the Cache, based on active diagnostic
+ settings present on the Cache. Known values are: \"Enabled\" and \"Disabled\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ file_path: str,
+ size: int,
+ cache_subnet_resource_id: str,
+ peering_subnet_resource_id: str,
+ encryption_key_source: Union[str, "_models.EncryptionKeySource"],
+ origin_cluster_information: "_models.OriginClusterInformation",
+ export_policy: Optional["_models.CachePropertiesExportPolicy"] = None,
+ protocol_types: Optional[list[Union[str, "_models.ProtocolTypes"]]] = None,
+ kerberos: Optional[Union[str, "_models.KerberosState"]] = None,
+ smb_settings: Optional["_models.SmbSettings"] = None,
+ throughput_mibps: Optional[float] = None,
+ key_vault_private_endpoint_resource_id: Optional[str] = None,
+ ldap: Optional[Union[str, "_models.LdapState"]] = None,
+ ldap_server_type: Optional[Union[str, "_models.LdapServerType"]] = None,
+ cifs_change_notifications: Optional[Union[str, "_models.CifsChangeNotifyState"]] = None,
+ global_file_locking: Optional[Union[str, "_models.GlobalFileLockingState"]] = None,
+ write_back: Optional[Union[str, "_models.EnableWriteBackState"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CachePropertiesExportPolicy(_Model):
+ """Set of export policy rules.
+
+ :ivar rules: Export policy rule.
+ :vartype rules: list[~azure.mgmt.netapp.models.ExportPolicyRule]
+ """
+
+ rules: Optional[list["_models.ExportPolicyRule"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Export policy rule."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ rules: Optional[list["_models.ExportPolicyRule"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CacheUpdate(_Model):
+ """The type used for update operations of the Cache.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.CacheUpdateProperties
+ """
+
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
+ properties: Optional["_models.CacheUpdateProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.CacheUpdateProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CacheUpdateProperties(_Model):
+ """The updatable properties of the Cache.
+
+ :ivar size: Maximum storage quota allowed for a file system in bytes. Valid values are in the
+ range 50GiB to 1PiB. Values expressed in bytes as multiples of 1GiB.
+ :vartype size: int
+ :ivar export_policy: Set of export policy rules.
+ :vartype export_policy: ~azure.mgmt.netapp.models.CachePropertiesExportPolicy
+ :ivar protocol_types: Set of supported protocol types, which include NFSv3, NFSv4 and SMB
+ protocol.
+ :vartype protocol_types: list[str or ~azure.mgmt.netapp.models.ProtocolTypes]
+ :ivar smb_settings: SMB information for the cache.
+ :vartype smb_settings: ~azure.mgmt.netapp.models.SmbSettings
+ :ivar throughput_mibps: Maximum throughput in MiB/s that can be achieved by this cache volume
+ and this will be accepted as input only for manual qosType cache.
+ :vartype throughput_mibps: float
+ :ivar key_vault_private_endpoint_resource_id: The resource ID of private endpoint for KeyVault.
+ It must reside in the same VNET as the volume. Only applicable if encryptionKeySource =
+ 'Microsoft.KeyVault'.
+ :vartype key_vault_private_endpoint_resource_id: str
+ :ivar cifs_change_notifications: Flag indicating whether a CIFS change notification is enabled
+ for the cache. Known values are: "Disabled" and "Enabled".
+ :vartype cifs_change_notifications: str or ~azure.mgmt.netapp.models.CifsChangeNotifyState
+ :ivar write_back: Flag indicating whether writeback is enabled for the cache. Known values are:
+ "Disabled" and "Enabled".
+ :vartype write_back: str or ~azure.mgmt.netapp.models.EnableWriteBackState
+ """
+
+ size: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Maximum storage quota allowed for a file system in bytes. Valid values are in the range 50GiB
+ to 1PiB. Values expressed in bytes as multiples of 1GiB."""
+ export_policy: Optional["_models.CachePropertiesExportPolicy"] = rest_field(
+ name="exportPolicy", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Set of export policy rules."""
+ protocol_types: Optional[list[Union[str, "_models.ProtocolTypes"]]] = rest_field(
+ name="protocolTypes", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Set of supported protocol types, which include NFSv3, NFSv4 and SMB protocol."""
+ smb_settings: Optional["_models.SmbSettings"] = rest_field(
+ name="smbSettings", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """SMB information for the cache."""
+ throughput_mibps: Optional[float] = rest_field(
+ name="throughputMibps", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Maximum throughput in MiB/s that can be achieved by this cache volume and this will be accepted
+ as input only for manual qosType cache."""
+ key_vault_private_endpoint_resource_id: Optional[str] = rest_field(
+ name="keyVaultPrivateEndpointResourceId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the
+ volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'."""
+ cifs_change_notifications: Optional[Union[str, "_models.CifsChangeNotifyState"]] = rest_field(
+ name="cifsChangeNotifications", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Flag indicating whether a CIFS change notification is enabled for the cache. Known values are:
+ \"Disabled\" and \"Enabled\"."""
+ write_back: Optional[Union[str, "_models.EnableWriteBackState"]] = rest_field(
+ name="writeBack", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Flag indicating whether writeback is enabled for the cache. Known values are: \"Disabled\" and
+ \"Enabled\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ size: Optional[int] = None,
+ export_policy: Optional["_models.CachePropertiesExportPolicy"] = None,
+ protocol_types: Optional[list[Union[str, "_models.ProtocolTypes"]]] = None,
+ smb_settings: Optional["_models.SmbSettings"] = None,
+ throughput_mibps: Optional[float] = None,
+ key_vault_private_endpoint_resource_id: Optional[str] = None,
+ cifs_change_notifications: Optional[Union[str, "_models.CifsChangeNotifyState"]] = None,
+ write_back: Optional[Union[str, "_models.EnableWriteBackState"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CapacityPool(TrackedResource):
+ """Capacity pool resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: Capacity pool properties. Required.
+ :vartype properties: ~azure.mgmt.netapp.models.PoolProperties
+ :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
+ :vartype etag: str
+ """
+
+ properties: "_models.PoolProperties" = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Capacity pool properties. Required."""
+ etag: Optional[str] = rest_field(visibility=["read"])
+ """\"If etag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")."""
+
+ __flattened_items = [
+ "pool_id",
+ "size",
+ "service_level",
+ "provisioning_state",
+ "total_throughput_mibps",
+ "utilized_throughput_mibps",
+ "custom_throughput_mibps",
+ "qos_type",
+ "cool_access",
+ "encryption_type",
+ ]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ location: str,
+ properties: "_models.PoolProperties",
+ tags: Optional[dict[str, str]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
+ super().__init__(*args, **kwargs)
+ for k, v in _flattened_input.items():
+ setattr(self, k, v)
+
+ def __getattr__(self, name: str) -> Any:
+ if name in self.__flattened_items:
+ if self.properties is None:
+ return None
+ return getattr(self.properties, name)
+ raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
+
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key in self.__flattened_items:
+ if self.properties is None:
+ self.properties = self._attr_to_rest_field["properties"]._class_type()
+ setattr(self.properties, key, value)
+ else:
+ super().__setattr__(key, value)
+
+
+class CapacityPoolPatch(_Model):
+ """Capacity pool patch resource.
+
+ :ivar location: Resource location.
+ :vartype location: str
+ :ivar id: Resource Id.
+ :vartype id: str
+ :ivar name: Resource name.
+ :vartype name: str
+ :ivar type: Resource type.
+ :vartype type: str
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: Capacity pool properties.
+ :vartype properties: ~azure.mgmt.netapp.models.PoolPatchProperties
+ """
+
+ location: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource location."""
+ id: Optional[str] = rest_field(visibility=["read"])
+ """Resource Id."""
+ name: Optional[str] = rest_field(visibility=["read"])
+ """Resource name."""
+ type: Optional[str] = rest_field(visibility=["read"])
+ """Resource type."""
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
+ properties: Optional["_models.PoolPatchProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Capacity pool properties."""
+
+ __flattened_items = ["size", "qos_type", "cool_access", "custom_throughput_mibps"]
+
+ @overload
+ def __init__(
+ self,
+ *,
+ location: Optional[str] = None,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.PoolPatchProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
+ super().__init__(*args, **kwargs)
+ for k, v in _flattened_input.items():
+ setattr(self, k, v)
+
+ def __getattr__(self, name: str) -> Any:
+ if name in self.__flattened_items:
+ if self.properties is None:
+ return None
+ return getattr(self.properties, name)
+ raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
+
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key in self.__flattened_items:
+ if self.properties is None:
+ self.properties = self._attr_to_rest_field["properties"]._class_type()
+ setattr(self.properties, key, value)
+ else:
+ super().__setattr__(key, value)
+
+
+class CertificateAkvDetails(_Model):
+ """Specifies the Azure Key Vault settings for retrieving the bucket server certificate.
+
+ :ivar certificate_key_vault_uri: The base URI of the Azure Key Vault that is used when
+ retrieving the bucket certificate.
+ :vartype certificate_key_vault_uri: str
+ :ivar certificate_name: The name of the bucket server certificate stored in the Azure Key
+ Vault.
+ :vartype certificate_name: str
+ :ivar user_assigned_identity: Optional resource ID of the managed identity that has access to
+ the Azure Key Vault (AKV) secret. If a value is provided, it is used to find a matching entry
+ in the account's collection of user-assigned managed identities. If no match is found, an
+ exception is thrown. If no value is provided, the system-assigned managed identity is used.
+ :vartype user_assigned_identity: str
+ """
+
+ certificate_key_vault_uri: Optional[str] = rest_field(
+ name="certificateKeyVaultUri", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The base URI of the Azure Key Vault that is used when retrieving the bucket certificate."""
+ certificate_name: Optional[str] = rest_field(
+ name="certificateName", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The name of the bucket server certificate stored in the Azure Key Vault."""
+ user_assigned_identity: Optional[str] = rest_field(
+ name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Optional resource ID of the managed identity that has access to the Azure Key Vault (AKV)
+ secret. If a value is provided, it is used to find a matching entry in the account's collection
+ of user-assigned managed identities. If no match is found, an exception is thrown. If no value
+ is provided, the system-assigned managed identity is used."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ certificate_key_vault_uri: Optional[str] = None,
+ certificate_name: Optional[str] = None,
+ user_assigned_identity: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ChangeKeyVault(_Model):
+ """Change key vault request.
+
+ :ivar key_vault_uri: The URI of the key vault/managed HSM that should be used for encryption.
+ Required.
+ :vartype key_vault_uri: str
+ :ivar key_name: The name of the key that should be used for encryption. Required.
+ :vartype key_name: str
+ :ivar key_vault_resource_id: Azure resource ID of the key vault/managed HSM that should be used
+ for encryption.
+ :vartype key_vault_resource_id: str
+ :ivar key_vault_private_endpoints: Pairs of virtual network ID and private endpoint ID. Every
+ virtual network that has volumes encrypted with customer-managed keys needs its own key vault
+ private endpoint. Required.
+ :vartype key_vault_private_endpoints: list[~azure.mgmt.netapp.models.KeyVaultPrivateEndpoint]
+ """
+
+ key_vault_uri: str = rest_field(name="keyVaultUri", visibility=["read", "create", "update", "delete", "query"])
+ """The URI of the key vault/managed HSM that should be used for encryption. Required."""
+ key_name: str = rest_field(name="keyName", visibility=["read", "create", "update", "delete", "query"])
+ """The name of the key that should be used for encryption. Required."""
+ key_vault_resource_id: Optional[str] = rest_field(
+ name="keyVaultResourceId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Azure resource ID of the key vault/managed HSM that should be used for encryption."""
+ key_vault_private_endpoints: list["_models.KeyVaultPrivateEndpoint"] = rest_field(
+ name="keyVaultPrivateEndpoints", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Pairs of virtual network ID and private endpoint ID. Every virtual network that has volumes
+ encrypted with customer-managed keys needs its own key vault private endpoint. Required."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ key_vault_uri: str,
+ key_name: str,
+ key_vault_private_endpoints: list["_models.KeyVaultPrivateEndpoint"],
+ key_vault_resource_id: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ChangeZoneRequest(_Model):
+ """Changes the zone for the Zone Redundant elastic capacity pool.
+
+ :ivar new_zone: Availability zone to move Zone Redundant elastic capacity pool to. Required.
+ :vartype new_zone: str
+ """
+
+ new_zone: str = rest_field(name="newZone", visibility=["read", "create", "update", "delete", "query"])
+ """Availability zone to move Zone Redundant elastic capacity pool to. Required."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ new_zone: str,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CheckAvailabilityResponse(_Model):
+ """Information regarding availability of a resource.
+
+ :ivar is_available: true indicates name is valid and available. false
+ indicates the name is invalid, unavailable, or both.
+ :vartype is_available: bool
+ :ivar reason: Invalid indicates the name provided does not match Azure App Service
+ naming requirements. AlreadyExists indicates that the name is already in use and
+ is therefore unavailable. Known values are: "Invalid" and "AlreadyExists".
+ :vartype reason: str or ~azure.mgmt.netapp.models.InAvailabilityReasonType
+ :ivar message: If reason == invalid, provide the user with the reason why the given name is
+ invalid, and provide the resource naming requirements so that the user can select a valid name.
+ If reason == AlreadyExists, explain that resource name is already in use, and direct them to
+ select a different name.
+ :vartype message: str
+ """
+
+ is_available: Optional[bool] = rest_field(
+ name="isAvailable", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """true indicates name is valid and available. false indicates the name
+ is invalid, unavailable, or both."""
+ reason: Optional[Union[str, "_models.InAvailabilityReasonType"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Invalid indicates the name provided does not match Azure App Service naming
+ requirements. AlreadyExists indicates that the name is already in use and is
+ therefore unavailable. Known values are: \"Invalid\" and \"AlreadyExists\"."""
+ message: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """If reason == invalid, provide the user with the reason why the given name is invalid, and
+ provide the resource naming requirements so that the user can select a valid name. If reason ==
+ AlreadyExists, explain that resource name is already in use, and direct them to select a
+ different name."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ is_available: Optional[bool] = None,
+ reason: Optional[Union[str, "_models.InAvailabilityReasonType"]] = None,
+ message: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CheckElasticResourceAvailabilityResponse(_Model):
+ """Information regarding availability of a resource.
+
+ :ivar is_available: True indicates name is valid and available. False indicates the name is
+ invalid, unavailable, or both. Known values are: "True" and "False".
+ :vartype is_available: str or ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityStatus
+ :ivar reason: Invalid indicates the name provided does not match Azure NetApp Files naming
+ requirements. AlreadyExists indicates that the name is already in use and is therefore
+ unavailable. Known values are: "Invalid" and "AlreadyExists".
+ :vartype reason: str or ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityReason
+ :ivar message: If reason == invalid, provide the user with the reason why the given name is
+ invalid, and provide the resource naming requirements so that the user can select a valid name.
+ If reason == AlreadyExists, explain that resource name is already in use, and direct them to
+ select a different name.
+ :vartype message: str
+ """
+
+ is_available: Optional[Union[str, "_models.CheckElasticResourceAvailabilityStatus"]] = rest_field(
+ name="isAvailable", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """True indicates name is valid and available. False indicates the name is invalid, unavailable,
+ or both. Known values are: \"True\" and \"False\"."""
+ reason: Optional[Union[str, "_models.CheckElasticResourceAvailabilityReason"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Invalid indicates the name provided does not match Azure NetApp Files naming requirements.
+ AlreadyExists indicates that the name is already in use and is therefore unavailable. Known
+ values are: \"Invalid\" and \"AlreadyExists\"."""
+ message: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """If reason == invalid, provide the user with the reason why the given name is invalid, and
+ provide the resource naming requirements so that the user can select a valid name. If reason ==
+ AlreadyExists, explain that resource name is already in use, and direct them to select a
+ different name."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ is_available: Optional[Union[str, "_models.CheckElasticResourceAvailabilityStatus"]] = None,
+ reason: Optional[Union[str, "_models.CheckElasticResourceAvailabilityReason"]] = None,
+ message: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CheckElasticVolumeFilePathAvailabilityRequest(_Model): # pylint: disable=name-too-long
+ """File path availability request content - availability is based on the elastic volume filePath
+ within the given elastic capacityPool.
+
+ :ivar file_path: A unique file path for the volume. Used when creating mount targets. This
+ needs to be unique within the elastic capacity pool. Required.
+ :vartype file_path: str
+ """
+
+ file_path: str = rest_field(name="filePath", visibility=["read", "create", "update", "delete", "query"])
+ """A unique file path for the volume. Used when creating mount targets. This needs to be unique
+ within the elastic capacity pool. Required."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ file_path: str,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CifsUser(_Model):
+ """The effective CIFS username when accessing the volume data.
+
+ :ivar username: The CIFS user's username.
+ :vartype username: str
+ """
+
+ username: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """The CIFS user's username."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ username: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ClusterPeerCommandResponse(_Model):
+ """Information about cluster peering process.
+
+ :ivar properties: Represents the properties of the cluster peer command response.
+ :vartype properties: ~azure.mgmt.netapp.models.ClusterPeerCommandResponseProperties
+ """
+
+ properties: Optional["_models.ClusterPeerCommandResponseProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Represents the properties of the cluster peer command response."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ properties: Optional["_models.ClusterPeerCommandResponseProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ClusterPeerCommandResponseProperties(_Model):
+ """Properties of the cluster peer command response.
+
+ :ivar cluster_peering_command: ClusterPeeringCommand to run to accept cluster peer. Will only
+ be present if clusterPeeringStatus is pending.
+ :vartype cluster_peering_command: str
+ :ivar passphrase: Passphrase for use with cluster peer command.
+ :vartype passphrase: str
+ """
+
+ cluster_peering_command: Optional[str] = rest_field(
+ name="clusterPeeringCommand", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """ClusterPeeringCommand to run to accept cluster peer. Will only be present if
+ clusterPeeringStatus is pending."""
+ passphrase: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Passphrase for use with cluster peer command."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ cluster_peering_command: Optional[str] = None,
+ passphrase: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class CredentialsAkvDetails(_Model):
+ """Specifies the Azure Key Vault settings for storing the bucket credentials.
+
+ :ivar credentials_key_vault_uri: The base URI of the Azure Key Vault that is used when storing
+ the bucket credentials.
+ :vartype credentials_key_vault_uri: str
+ :ivar secret_name: The name of the secret stored in Azure Key Vault. The associated key pair
+ has the following structure:
+
+ {
+ "access_key_id": "",
+ "secret_access_key": ""
+ }.
+ :vartype secret_name: str
+ :ivar user_assigned_identity: Optional resource ID of the managed identity that has access to
+ the Azure Key Vault (AKV) secret. If a value is provided, it is used to find a matching entry
+ in the account's collection of user-assigned managed identities. If no match is found, an
+ exception is thrown. If no value is provided, the system-assigned managed identity is used.
+ :vartype user_assigned_identity: str
+ """
+
+ credentials_key_vault_uri: Optional[str] = rest_field(
+ name="credentialsKeyVaultUri", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The base URI of the Azure Key Vault that is used when storing the bucket credentials."""
+ secret_name: Optional[str] = rest_field(
+ name="secretName", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The name of the secret stored in Azure Key Vault. The associated key pair has the following
+ structure:
+
+ {
+ \"access_key_id\": \"\",
+ \"secret_access_key\": \"\"
+ }."""
+ user_assigned_identity: Optional[str] = rest_field(
+ name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Optional resource ID of the managed identity that has access to the Azure Key Vault (AKV)
+ secret. If a value is provided, it is used to find a matching entry in the account's collection
+ of user-assigned managed identities. If no match is found, an exception is thrown. If no value
+ is provided, the system-assigned managed identity is used."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ credentials_key_vault_uri: Optional[str] = None,
+ secret_name: Optional[str] = None,
+ user_assigned_identity: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class DailySchedule(_Model):
+ """Daily Schedule properties.
+
+ :ivar snapshots_to_keep: Daily snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
+ :vartype hour: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ :ivar used_bytes: Resource size in bytes, current storage usage for the volume in bytes.
+ :vartype used_bytes: int
+ """
+
+ snapshots_to_keep: Optional[int] = rest_field(
+ name="snapshotsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Daily snapshot count to keep."""
+ hour: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which hour in UTC timezone a snapshot should be taken."""
+ minute: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which minute snapshot should be taken."""
+ used_bytes: Optional[int] = rest_field(name="usedBytes", visibility=["read", "create", "update", "delete", "query"])
+ """Resource size in bytes, current storage usage for the volume in bytes."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ snapshots_to_keep: Optional[int] = None,
+ hour: Optional[int] = None,
+ minute: Optional[int] = None,
+ used_bytes: Optional[int] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class DestinationReplication(_Model):
+ """Destination replication properties.
+
+ :ivar resource_id: The resource ID of the remote volume.
+ :vartype resource_id: str
+ :ivar replication_type: Indicates whether the replication is cross zone or cross region. Known
+ values are: "CrossRegionReplication" and "CrossZoneReplication".
+ :vartype replication_type: str or ~azure.mgmt.netapp.models.ReplicationType
+ :ivar region: The remote region for the destination volume.
+ :vartype region: str
+ :ivar zone: The remote zone for the destination volume.
+ :vartype zone: str
+ """
+
+ resource_id: Optional[str] = rest_field(
+ name="resourceId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource ID of the remote volume."""
+ replication_type: Optional[Union[str, "_models.ReplicationType"]] = rest_field(
+ name="replicationType", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Indicates whether the replication is cross zone or cross region. Known values are:
+ \"CrossRegionReplication\" and \"CrossZoneReplication\"."""
+ region: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """The remote region for the destination volume."""
+ zone: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """The remote zone for the destination volume."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ resource_id: Optional[str] = None,
+ replication_type: Optional[Union[str, "_models.ReplicationType"]] = None,
+ region: Optional[str] = None,
+ zone: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class Dimension(_Model):
+ """Dimension of blobs, possibly be blob type or access tier.
+
+ :ivar name: Display name of dimension.
+ :vartype name: str
+ :ivar display_name: Display name of dimension.
+ :vartype display_name: str
+ """
+
+ name: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Display name of dimension."""
+ display_name: Optional[str] = rest_field(
+ name="displayName", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Display name of dimension."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ name: Optional[str] = None,
+ display_name: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticAccount(TrackedResource):
+ """NetApp elastic account resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticAccountProperties
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: ~azure.mgmt.netapp.models.ManagedServiceIdentity
+ """
+
+ properties: Optional["_models.ElasticAccountProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+ e_tag: Optional[str] = rest_field(name="eTag", visibility=["read"])
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+ identity: Optional["_models.ManagedServiceIdentity"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The managed service identities assigned to this resource."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ location: str,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticAccountProperties"] = None,
+ identity: Optional["_models.ManagedServiceIdentity"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticAccountProperties(_Model):
+ """NetApp elastic account properties.
+
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ :ivar encryption: Encryption settings.
+ :vartype encryption: ~azure.mgmt.netapp.models.ElasticEncryption
+ """
+
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ encryption: Optional["_models.ElasticEncryption"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Encryption settings."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ encryption: Optional["_models.ElasticEncryption"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticAccountUpdate(_Model):
+ """The type used for update operations of the ElasticAccount.
+
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: ~azure.mgmt.netapp.models.ManagedServiceIdentity
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticAccountUpdateProperties
+ """
+
+ identity: Optional["_models.ManagedServiceIdentity"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The managed service identities assigned to this resource."""
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
+ properties: Optional["_models.ElasticAccountUpdateProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ identity: Optional["_models.ManagedServiceIdentity"] = None,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticAccountUpdateProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticAccountUpdateProperties(_Model):
+ """The updatable properties of the ElasticAccount.
+
+ :ivar encryption: Encryption settings.
+ :vartype encryption: ~azure.mgmt.netapp.models.ElasticEncryption
+ """
+
+ encryption: Optional["_models.ElasticEncryption"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Encryption settings."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ encryption: Optional["_models.ElasticEncryption"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticBackup(ProxyResource):
+ """NetApp Elastic Backup under an elastic Backup Vault.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticBackupProperties
+ """
+
+ properties: Optional["_models.ElasticBackupProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ properties: Optional["_models.ElasticBackupProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticBackupPolicy(TrackedResource):
+ """NetApp Elastic Backup Policy resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticBackupPolicyProperties
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ """
+
+ properties: Optional["_models.ElasticBackupPolicyProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+ e_tag: Optional[str] = rest_field(name="eTag", visibility=["read"])
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ location: str,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticBackupPolicyProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticBackupPolicyProperties(_Model):
+ """Elastic Backup Policy properties.
+
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ :ivar daily_backups_to_keep: Daily backups count to keep.
+ :vartype daily_backups_to_keep: int
+ :ivar weekly_backups_to_keep: Weekly backups count to keep.
+ :vartype weekly_backups_to_keep: int
+ :ivar monthly_backups_to_keep: Monthly backups count to keep.
+ :vartype monthly_backups_to_keep: int
+ :ivar assigned_volumes_count: The number of volumes currently using this Backup Policy.
+ :vartype assigned_volumes_count: int
+ :ivar policy_state: The property to identify whether Backup Policy is enabled or not. Known
+ values are: "Enabled" and "Disabled".
+ :vartype policy_state: str or ~azure.mgmt.netapp.models.ElasticBackupPolicyState
+ """
+
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ daily_backups_to_keep: Optional[int] = rest_field(
+ name="dailyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Daily backups count to keep."""
+ weekly_backups_to_keep: Optional[int] = rest_field(
+ name="weeklyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Weekly backups count to keep."""
+ monthly_backups_to_keep: Optional[int] = rest_field(
+ name="monthlyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Monthly backups count to keep."""
+ assigned_volumes_count: Optional[int] = rest_field(name="assignedVolumesCount", visibility=["read"])
+ """The number of volumes currently using this Backup Policy."""
+ policy_state: Optional[Union[str, "_models.ElasticBackupPolicyState"]] = rest_field(
+ name="policyState", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The property to identify whether Backup Policy is enabled or not. Known values are: \"Enabled\"
+ and \"Disabled\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ daily_backups_to_keep: Optional[int] = None,
+ weekly_backups_to_keep: Optional[int] = None,
+ monthly_backups_to_keep: Optional[int] = None,
+ policy_state: Optional[Union[str, "_models.ElasticBackupPolicyState"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticBackupPolicyUpdate(_Model):
+ """The type used for update operations of the ElasticBackupPolicy.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticBackupPolicyUpdateProperties
+ """
+
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
+ properties: Optional["_models.ElasticBackupPolicyUpdateProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticBackupPolicyUpdateProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticBackupPolicyUpdateProperties(_Model):
+ """The updatable properties of the ElasticBackupPolicy.
+
+ :ivar daily_backups_to_keep: Daily backups count to keep.
+ :vartype daily_backups_to_keep: int
+ :ivar weekly_backups_to_keep: Weekly backups count to keep.
+ :vartype weekly_backups_to_keep: int
+ :ivar monthly_backups_to_keep: Monthly backups count to keep.
+ :vartype monthly_backups_to_keep: int
+ :ivar policy_state: The property to identify whether Backup Policy is enabled or not. Known
+ values are: "Enabled" and "Disabled".
+ :vartype policy_state: str or ~azure.mgmt.netapp.models.ElasticBackupPolicyState
+ """
+
+ daily_backups_to_keep: Optional[int] = rest_field(
+ name="dailyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Daily backups count to keep."""
+ weekly_backups_to_keep: Optional[int] = rest_field(
+ name="weeklyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Weekly backups count to keep."""
+ monthly_backups_to_keep: Optional[int] = rest_field(
+ name="monthlyBackupsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Monthly backups count to keep."""
+ policy_state: Optional[Union[str, "_models.ElasticBackupPolicyState"]] = rest_field(
+ name="policyState", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The property to identify whether Backup Policy is enabled or not. Known values are: \"Enabled\"
+ and \"Disabled\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ daily_backups_to_keep: Optional[int] = None,
+ weekly_backups_to_keep: Optional[int] = None,
+ monthly_backups_to_keep: Optional[int] = None,
+ policy_state: Optional[Union[str, "_models.ElasticBackupPolicyState"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticBackupProperties(_Model):
+ """Elastic Backup properties.
+
+ :ivar creation_date: The creation date of the backup.
+ :vartype creation_date: ~datetime.datetime
+ :ivar snapshot_creation_date: The snapshot creation date of the backup.
+ :vartype snapshot_creation_date: ~datetime.datetime
+ :ivar completion_date: The completion date of the backup.
+ :vartype completion_date: ~datetime.datetime
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ :ivar size: Size of backup in bytes.
+ :vartype size: int
+ :ivar label: Label for backup.
+ :vartype label: str
+ :ivar backup_type: Type of backup Manual or Scheduled. Known values are: "Manual" and
+ "Scheduled".
+ :vartype backup_type: str or ~azure.mgmt.netapp.models.ElasticBackupType
+ :ivar failure_reason: Failure reason.
+ :vartype failure_reason: str
+ :ivar elastic_volume_resource_id: ResourceId used to identify the Elastic Volume. Required.
+ :vartype elastic_volume_resource_id: str
+ :ivar snapshot_usage: Manual backup using an already existing snapshot. This will always be
+ CreateNewSnapshot for scheduled backups and UseExistingSnapshot/CreateNewSnapshot for manual
+ backups. Known values are: "UseExistingSnapshot" and "CreateNewSnapshot".
+ :vartype snapshot_usage: str or ~azure.mgmt.netapp.models.SnapshotUsage
+ :ivar elastic_snapshot_resource_id: ResourceId used to identify the elastic snapshot resource.
+ This is required when an existing snapshot needs to be used for creating a manual backup.
+ :vartype elastic_snapshot_resource_id: str
+ :ivar elastic_backup_policy_resource_id: ResourceId used to identify the elastic backup policy.
+ :vartype elastic_backup_policy_resource_id: str
+ :ivar volume_size: Specifies if the backup is for a large volume. Known values are: "Large" and
+ "Regular".
+ :vartype volume_size: str or ~azure.mgmt.netapp.models.VolumeSize
+ """
+
+ creation_date: Optional[datetime.datetime] = rest_field(name="creationDate", visibility=["read"], format="rfc3339")
+ """The creation date of the backup."""
+ snapshot_creation_date: Optional[datetime.datetime] = rest_field(
+ name="snapshotCreationDate", visibility=["read"], format="rfc3339"
+ )
+ """The snapshot creation date of the backup."""
+ completion_date: Optional[datetime.datetime] = rest_field(
+ name="completionDate", visibility=["read"], format="rfc3339"
+ )
+ """The completion date of the backup."""
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ size: Optional[int] = rest_field(visibility=["read"])
+ """Size of backup in bytes."""
+ label: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Label for backup."""
+ backup_type: Optional[Union[str, "_models.ElasticBackupType"]] = rest_field(name="backupType", visibility=["read"])
+ """Type of backup Manual or Scheduled. Known values are: \"Manual\" and \"Scheduled\"."""
+ failure_reason: Optional[str] = rest_field(name="failureReason", visibility=["read"])
+ """Failure reason."""
+ elastic_volume_resource_id: str = rest_field(name="elasticVolumeResourceId", visibility=["read", "create"])
+ """ResourceId used to identify the Elastic Volume. Required."""
+ snapshot_usage: Optional[Union[str, "_models.SnapshotUsage"]] = rest_field(
+ name="snapshotUsage", visibility=["read", "create"]
+ )
+ """Manual backup using an already existing snapshot. This will always be CreateNewSnapshot for
+ scheduled backups and UseExistingSnapshot/CreateNewSnapshot for manual backups. Known values
+ are: \"UseExistingSnapshot\" and \"CreateNewSnapshot\"."""
+ elastic_snapshot_resource_id: Optional[str] = rest_field(
+ name="elasticSnapshotResourceId", visibility=["read", "create"]
+ )
+ """ResourceId used to identify the elastic snapshot resource. This is required when an existing
+ snapshot needs to be used for creating a manual backup."""
+ elastic_backup_policy_resource_id: Optional[str] = rest_field(
+ name="elasticBackupPolicyResourceId", visibility=["read"]
+ )
+ """ResourceId used to identify the elastic backup policy."""
+ volume_size: Optional[Union[str, "_models.VolumeSize"]] = rest_field(name="volumeSize", visibility=["read"])
+ """Specifies if the backup is for a large volume. Known values are: \"Large\" and \"Regular\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ elastic_volume_resource_id: str,
+ label: Optional[str] = None,
+ snapshot_usage: Optional[Union[str, "_models.SnapshotUsage"]] = None,
+ elastic_snapshot_resource_id: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticBackupVault(TrackedResource):
+ """NetApp elastic backup vault resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticBackupVaultProperties
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ """
+
+ properties: Optional["_models.ElasticBackupVaultProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+ e_tag: Optional[str] = rest_field(name="eTag", visibility=["read"])
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ location: str,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticBackupVaultProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticBackupVaultProperties(_Model):
+ """Elastic Backup Vault properties.
+
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ """
+
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+
+
+class ElasticBackupVaultUpdate(_Model):
+ """The type used for update operations of the ElasticBackupVault.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ """
+
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ tags: Optional[dict[str, str]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticCapacityPool(TrackedResource):
+ """NetApp Elastic Capacity Pool resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticCapacityPoolProperties
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ :ivar zones: The availability zones.
+ :vartype zones: list[str]
+ """
+
+ properties: Optional["_models.ElasticCapacityPoolProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+ e_tag: Optional[str] = rest_field(name="eTag", visibility=["read"])
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+ zones: Optional[list[str]] = rest_field(visibility=["read", "create"])
+ """The availability zones."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ location: str,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticCapacityPoolProperties"] = None,
+ zones: Optional[list[str]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticCapacityPoolProperties(_Model):
+ """Elastic capacity pool properties.
+
+ :ivar size: Provisioned size of the pool (in bytes). For zoneRedundant service level pool,
+ value must be in the range 1TiB to 16TiB or 1TiB to 128TiB for supported region. Values
+ expressed in bytes as multiples of 1TiB till 16TiB and in multiples of 8TiB from 24TiB to
+ 128TiB. Pool size can't be shrunk once it is created. Required.
+ :vartype size: int
+ :ivar service_level: The service level of the elastic capacity pool. Required. "ZoneRedundant"
+ :vartype service_level: str or ~azure.mgmt.netapp.models.ElasticServiceLevel
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ :ivar encryption: Encryption settings.
+ :vartype encryption: ~azure.mgmt.netapp.models.ElasticEncryptionConfiguration
+ :ivar total_throughput_mibps: Total throughput of the pool in MiB/s.
+ :vartype total_throughput_mibps: float
+ :ivar subnet_resource_id: The Azure Resource URI for a delegated subnet. Must have the
+ delegation Microsoft.NetApp/elasticVolumes, this is used by all the volumes within the pool.
+ Required.
+ :vartype subnet_resource_id: str
+ :ivar current_zone: Indicates the current zone of the pool. This can be changed for
+ zoneRedundant service level pool with the changeZone action.
+ :vartype current_zone: str
+ :ivar availability_status: Current availability status of the resource. Known values are:
+ "Online" and "Offline".
+ :vartype availability_status: str or
+ ~azure.mgmt.netapp.models.ElasticResourceAvailabilityStatus
+ :ivar active_directory_config_resource_id: The Azure Resource URI for an Active Directory
+ configuration. This is used by all the SMB volumes within the pool.
+ :vartype active_directory_config_resource_id: str
+ """
+
+ size: int = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Provisioned size of the pool (in bytes). For zoneRedundant service level pool, value must be in
+ the range 1TiB to 16TiB or 1TiB to 128TiB for supported region. Values expressed in bytes as
+ multiples of 1TiB till 16TiB and in multiples of 8TiB from 24TiB to 128TiB. Pool size can't be
+ shrunk once it is created. Required."""
+ service_level: Union[str, "_models.ElasticServiceLevel"] = rest_field(
+ name="serviceLevel", visibility=["read", "create"]
+ )
+ """The service level of the elastic capacity pool. Required. \"ZoneRedundant\""""
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ encryption: Optional["_models.ElasticEncryptionConfiguration"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Encryption settings."""
+ total_throughput_mibps: Optional[float] = rest_field(name="totalThroughputMibps", visibility=["read"])
+ """Total throughput of the pool in MiB/s."""
+ subnet_resource_id: str = rest_field(name="subnetResourceId", visibility=["read", "create"])
+ """The Azure Resource URI for a delegated subnet. Must have the delegation
+ Microsoft.NetApp/elasticVolumes, this is used by all the volumes within the pool. Required."""
+ current_zone: Optional[str] = rest_field(name="currentZone", visibility=["read"])
+ """Indicates the current zone of the pool. This can be changed for zoneRedundant service level
+ pool with the changeZone action."""
+ availability_status: Optional[Union[str, "_models.ElasticResourceAvailabilityStatus"]] = rest_field(
+ name="availabilityStatus", visibility=["read"]
+ )
+ """Current availability status of the resource. Known values are: \"Online\" and \"Offline\"."""
+ active_directory_config_resource_id: Optional[str] = rest_field(
+ name="activeDirectoryConfigResourceId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The Azure Resource URI for an Active Directory configuration. This is used by all the SMB
+ volumes within the pool."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ size: int,
+ service_level: Union[str, "_models.ElasticServiceLevel"],
+ subnet_resource_id: str,
+ encryption: Optional["_models.ElasticEncryptionConfiguration"] = None,
+ active_directory_config_resource_id: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticCapacityPoolUpdate(_Model):
+ """The type used for update operations of the ElasticCapacityPool.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticCapacityPoolUpdateProperties
+ """
+
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
+ properties: Optional["_models.ElasticCapacityPoolUpdateProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticCapacityPoolUpdateProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticCapacityPoolUpdateProperties(_Model):
+ """The updatable properties of the ElasticCapacityPool.
+
+ :ivar size: Provisioned size of the pool (in bytes). For zoneRedundant service level pool,
+ value must be in the range 1TiB to 16TiB or 1TiB to 128TiB for supported region. Values
+ expressed in bytes as multiples of 1TiB till 16TiB and in multiples of 8TiB from 24TiB to
+ 128TiB. Pool size can't be shrunk once it is created.
+ :vartype size: int
+ :ivar encryption: Encryption settings.
+ :vartype encryption: ~azure.mgmt.netapp.models.ElasticEncryptionConfiguration
+ :ivar active_directory_config_resource_id: The Azure Resource URI for an Active Directory
+ configuration. This is used by all the SMB volumes within the pool.
+ :vartype active_directory_config_resource_id: str
+ """
+
+ size: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Provisioned size of the pool (in bytes). For zoneRedundant service level pool, value must be in
+ the range 1TiB to 16TiB or 1TiB to 128TiB for supported region. Values expressed in bytes as
+ multiples of 1TiB till 16TiB and in multiples of 8TiB from 24TiB to 128TiB. Pool size can't be
+ shrunk once it is created."""
+ encryption: Optional["_models.ElasticEncryptionConfiguration"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Encryption settings."""
+ active_directory_config_resource_id: Optional[str] = rest_field(
+ name="activeDirectoryConfigResourceId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The Azure Resource URI for an Active Directory configuration. This is used by all the SMB
+ volumes within the pool."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ size: Optional[int] = None,
+ encryption: Optional["_models.ElasticEncryptionConfiguration"] = None,
+ active_directory_config_resource_id: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticEncryption(_Model):
+ """Encryption settings.
+
+ :ivar key_source: The encryption keySource (provider). Possible values (case-insensitive):
+ Microsoft.NetApp, Microsoft.KeyVault. Known values are: "Microsoft.NetApp" and
+ "Microsoft.KeyVault".
+ :vartype key_source: str or ~azure.mgmt.netapp.models.KeySource
+ :ivar key_vault_properties: Properties provided by KeyVault. Applicable if keySource is
+ 'Microsoft.KeyVault'.
+ :vartype key_vault_properties: ~azure.mgmt.netapp.models.ElasticKeyVaultProperties
+ :ivar identity: Identity used to authenticate to KeyVault. Applicable if keySource is
+ 'Microsoft.KeyVault'.
+ :vartype identity: ~azure.mgmt.netapp.models.ElasticEncryptionIdentity
+ """
+
+ key_source: Optional[Union[str, "_models.KeySource"]] = rest_field(
+ name="keySource", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The encryption keySource (provider). Possible values (case-insensitive): Microsoft.NetApp,
+ Microsoft.KeyVault. Known values are: \"Microsoft.NetApp\" and \"Microsoft.KeyVault\"."""
+ key_vault_properties: Optional["_models.ElasticKeyVaultProperties"] = rest_field(
+ name="keyVaultProperties", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Properties provided by KeyVault. Applicable if keySource is 'Microsoft.KeyVault'."""
+ identity: Optional["_models.ElasticEncryptionIdentity"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Identity used to authenticate to KeyVault. Applicable if keySource is 'Microsoft.KeyVault'."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ key_source: Optional[Union[str, "_models.KeySource"]] = None,
+ key_vault_properties: Optional["_models.ElasticKeyVaultProperties"] = None,
+ identity: Optional["_models.ElasticEncryptionIdentity"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticEncryptionConfiguration(_Model):
+ """CMK Encryption Configuration.
+
+ :ivar elastic_pool_encryption_key_source: Pool Encryption Key Source. Required. Known values
+ are: "NetApp" and "KeyVault".
+ :vartype elastic_pool_encryption_key_source: str or
+ ~azure.mgmt.netapp.models.ElasticPoolEncryptionKeySource
+ :ivar key_vault_private_endpoint_resource_id: The resource ID of private endpoint for KeyVault.
+ It must reside in the same VNET as the volume. Only applicable if encryptionKeySource =
+ 'Microsoft.KeyVault'. Required.
+ :vartype key_vault_private_endpoint_resource_id: str
+ """
+
+ elastic_pool_encryption_key_source: Union[str, "_models.ElasticPoolEncryptionKeySource"] = rest_field(
+ name="elasticPoolEncryptionKeySource", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Pool Encryption Key Source. Required. Known values are: \"NetApp\" and \"KeyVault\"."""
+ key_vault_private_endpoint_resource_id: str = rest_field(
+ name="keyVaultPrivateEndpointResourceId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the
+ volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'. Required."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ elastic_pool_encryption_key_source: Union[str, "_models.ElasticPoolEncryptionKeySource"],
+ key_vault_private_endpoint_resource_id: str,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticEncryptionIdentity(_Model):
+ """Identity used to authenticate with key vault.
+
+ :ivar principal_id: The principal ID (object ID) of the identity used to authenticate with key
+ vault. Read-only.
+ :vartype principal_id: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault. Applicable if identity.type has 'UserAssigned'. It should match
+ key of identity.userAssignedIdentities.
+ :vartype user_assigned_identity: str
+ :ivar federated_client_id: ClientId of the multi-tenant Entra ID Application. Used to access
+ cross-tenant keyvaults.
+ :vartype federated_client_id: str
+ """
+
+ principal_id: Optional[str] = rest_field(name="principalId", visibility=["read"])
+ """The principal ID (object ID) of the identity used to authenticate with key vault. Read-only."""
+ user_assigned_identity: Optional[str] = rest_field(
+ name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault.
+ Applicable if identity.type has 'UserAssigned'. It should match key of
+ identity.userAssignedIdentities."""
+ federated_client_id: Optional[str] = rest_field(
+ name="federatedClientId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """ClientId of the multi-tenant Entra ID Application. Used to access cross-tenant keyvaults."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ user_assigned_identity: Optional[str] = None,
+ federated_client_id: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticExportPolicy(_Model):
+ """Set of export policy rules.
+
+ :ivar rules: Export policy rule.
+ :vartype rules: list[~azure.mgmt.netapp.models.ElasticExportPolicyRule]
+ """
+
+ rules: Optional[list["_models.ElasticExportPolicyRule"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Export policy rule."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ rules: Optional[list["_models.ElasticExportPolicyRule"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticExportPolicyRule(_Model):
+ """Elastic Volume Export Policy Rule.
+
+ :ivar rule_index: Controls the priority of the export policy rule. When connecting to the
+ volume the rule with the lowest index that applies to the connecting client is used.
+ :vartype rule_index: int
+ :ivar unix_access_rule: Specifies the Unix file access level for the volume. It encompasses
+ both read-only and read-write permissions. Additionally, NoAccess can be set to block all
+ access to the volume. Known values are: "ReadOnly", "ReadWrite", and "NoAccess".
+ :vartype unix_access_rule: str or ~azure.mgmt.netapp.models.ElasticUnixAccessRule
+ :ivar nfsv3: Allows clients to access the volume with the NFSv3 protocol. Enable only for NFSv3
+ type volumes. Known values are: "Enabled" and "Disabled".
+ :vartype nfsv3: str or ~azure.mgmt.netapp.models.ElasticNfsv3Access
+ :ivar nfsv4: Allows clients to access the volume with at least NFSv4.1 protocol. Known values
+ are: "Enabled" and "Disabled".
+ :vartype nfsv4: str or ~azure.mgmt.netapp.models.ElasticNfsv4Access
+ :ivar allowed_clients: Client ingress specification for the export policy as list of IPv4
+ CIDRs, IPv4 host addresses and host names.
+ :vartype allowed_clients: list[str]
+ :ivar root_access: Indicates whether root access to the volume is granted to clients affected
+ by this rule. Known values are: "Enabled" and "Disabled".
+ :vartype root_access: str or ~azure.mgmt.netapp.models.ElasticRootAccess
+ """
+
+ rule_index: Optional[int] = rest_field(name="ruleIndex", visibility=["read", "create", "update", "delete", "query"])
+ """Controls the priority of the export policy rule. When connecting to the volume the rule with
+ the lowest index that applies to the connecting client is used."""
+ unix_access_rule: Optional[Union[str, "_models.ElasticUnixAccessRule"]] = rest_field(
+ name="unixAccessRule", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Specifies the Unix file access level for the volume. It encompasses both read-only and
+ read-write permissions. Additionally, NoAccess can be set to block all access to the volume.
+ Known values are: \"ReadOnly\", \"ReadWrite\", and \"NoAccess\"."""
+ nfsv3: Optional[Union[str, "_models.ElasticNfsv3Access"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """List of mount targets that can be used to mount this cache."""
- kerberos: Optional[Union[str, "_models.KerberosState"]] = rest_field(visibility=["read", "create"])
- """Describe if a cache is Kerberos enabled. Known values are: \"Disabled\" and \"Enabled\"."""
- smb_settings: Optional["_models.SmbSettings"] = rest_field(
- name="smbSettings", visibility=["read", "create", "update", "delete", "query"]
+ """Allows clients to access the volume with the NFSv3 protocol. Enable only for NFSv3 type
+ volumes. Known values are: \"Enabled\" and \"Disabled\"."""
+ nfsv4: Optional[Union[str, "_models.ElasticNfsv4Access"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """SMB information for the cache."""
- throughput_mibps: Optional[float] = rest_field(
- name="throughputMibps", visibility=["read", "create", "update", "delete", "query"]
+ """Allows clients to access the volume with at least NFSv4.1 protocol. Known values are:
+ \"Enabled\" and \"Disabled\"."""
+ allowed_clients: Optional[list[str]] = rest_field(
+ name="allowedClients", visibility=["read", "create", "update", "delete", "query"]
)
- """Maximum throughput in MiB/s that can be achieved by this cache volume and this will be accepted
- as input only for manual qosType cache."""
- actual_throughput_mibps: Optional[float] = rest_field(name="actualThroughputMibps", visibility=["read"])
- """Actual throughput in MiB/s for auto qosType volumes calculated based on size and serviceLevel."""
- encryption_key_source: Union[str, "_models.EncryptionKeySource"] = rest_field(
- name="encryptionKeySource", visibility=["read", "create"]
+ """Client ingress specification for the export policy as list of IPv4 CIDRs, IPv4 host addresses
+ and host names."""
+ root_access: Optional[Union[str, "_models.ElasticRootAccess"]] = rest_field(
+ name="rootAccess", visibility=["read", "create", "update", "delete", "query"]
)
- """Source of key used to encrypt data in the cache. Applicable if NetApp account has
- encryption.keySource = 'Microsoft.KeyVault'. Possible values (case-insensitive) are:
- 'Microsoft.NetApp, Microsoft.KeyVault'. Required. Known values are: \"Microsoft.NetApp\" and
- \"Microsoft.KeyVault\"."""
- key_vault_private_endpoint_resource_id: Optional[str] = rest_field(
- name="keyVaultPrivateEndpointResourceId", visibility=["read", "create", "update", "delete", "query"]
+ """Indicates whether root access to the volume is granted to clients affected by this rule. Known
+ values are: \"Enabled\" and \"Disabled\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ rule_index: Optional[int] = None,
+ unix_access_rule: Optional[Union[str, "_models.ElasticUnixAccessRule"]] = None,
+ nfsv3: Optional[Union[str, "_models.ElasticNfsv3Access"]] = None,
+ nfsv4: Optional[Union[str, "_models.ElasticNfsv4Access"]] = None,
+ allowed_clients: Optional[list[str]] = None,
+ root_access: Optional[Union[str, "_models.ElasticRootAccess"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticKeyVaultProperties(_Model):
+ """Properties of key vault.
+
+ :ivar key_vault_uri: The Uri of KeyVault.
+ :vartype key_vault_uri: str
+ :ivar key_name: The name of KeyVault key.
+ :vartype key_name: str
+ :ivar key_vault_resource_id: The resource ID of KeyVault.
+ :vartype key_vault_resource_id: str
+ :ivar status: Status of the KeyVault connection. Known values are: "Created", "InUse",
+ "Deleted", "Error", and "Updating".
+ :vartype status: str or ~azure.mgmt.netapp.models.ElasticKeyVaultStatus
+ """
+
+ key_vault_uri: Optional[str] = rest_field(
+ name="keyVaultUri", visibility=["read", "create", "update", "delete", "query"]
)
- """The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the
- volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'."""
- maximum_number_of_files: Optional[int] = rest_field(name="maximumNumberOfFiles", visibility=["read"])
- """Maximum number of files allowed."""
- encryption: Optional[Union[str, "_models.EncryptionState"]] = rest_field(visibility=["read"])
- """Specifies if the cache is encryption or not. Known values are: \"Disabled\" and \"Enabled\"."""
- language: Optional[Union[str, "_models.VolumeLanguage"]] = rest_field(visibility=["read"])
- """Language supported for volume. Known values are: \"c.utf-8\", \"utf8mb4\", \"ar\",
- \"ar.utf-8\", \"hr\", \"hr.utf-8\", \"cs\", \"cs.utf-8\", \"da\", \"da.utf-8\", \"nl\",
- \"nl.utf-8\", \"en\", \"en.utf-8\", \"fi\", \"fi.utf-8\", \"fr\", \"fr.utf-8\", \"de\",
- \"de.utf-8\", \"he\", \"he.utf-8\", \"hu\", \"hu.utf-8\", \"it\", \"it.utf-8\", \"ja\",
- \"ja.utf-8\", \"ja-v1\", \"ja-v1.utf-8\", \"ja-jp.pck\", \"ja-jp.pck.utf-8\", \"ja-jp.932\",
- \"ja-jp.932.utf-8\", \"ja-jp.pck-v2\", \"ja-jp.pck-v2.utf-8\", \"ko\", \"ko.utf-8\", \"no\",
- \"no.utf-8\", \"pl\", \"pl.utf-8\", \"pt\", \"pt.utf-8\", \"c\", \"ro\", \"ro.utf-8\", \"ru\",
- \"ru.utf-8\", \"zh\", \"zh.utf-8\", \"zh.gbk\", \"zh.gbk.utf-8\", \"zh-tw.big5\",
- \"zh-tw.big5.utf-8\", \"zh-tw\", \"zh-tw.utf-8\", \"sk\", \"sk.utf-8\", \"sl\", \"sl.utf-8\",
- \"es\", \"es.utf-8\", \"sv\", \"sv.utf-8\", \"tr\", \"tr.utf-8\", \"en-us\", and
- \"en-us.utf-8\"."""
- ldap: Optional[Union[str, "_models.LdapState"]] = rest_field(visibility=["read", "create"])
- """Specifies whether LDAP is enabled or not for flexcache volume. Known values are: \"Disabled\"
- and \"Enabled\"."""
- ldap_server_type: Optional[Union[str, "_models.LdapServerType"]] = rest_field(
- name="ldapServerType", visibility=["read", "create"]
+ """The Uri of KeyVault."""
+ key_name: Optional[str] = rest_field(name="keyName", visibility=["read", "create", "update", "delete", "query"])
+ """The name of KeyVault key."""
+ key_vault_resource_id: Optional[str] = rest_field(
+ name="keyVaultResourceId", visibility=["read", "create", "update", "delete", "query"]
)
- """Specifies the type of LDAP server for flexcache volume. Known values are: \"ActiveDirectory\"
- and \"OpenLDAP\"."""
- origin_cluster_information: "_models.OriginClusterInformation" = rest_field(
- name="originClusterInformation", visibility=["read", "create"]
+ """The resource ID of KeyVault."""
+ status: Optional[Union[str, "_models.ElasticKeyVaultStatus"]] = rest_field(visibility=["read"])
+ """Status of the KeyVault connection. Known values are: \"Created\", \"InUse\", \"Deleted\",
+ \"Error\", and \"Updating\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ key_vault_uri: Optional[str] = None,
+ key_name: Optional[str] = None,
+ key_vault_resource_id: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticMountTargetProperties(_Model):
+ """Contains all the information needed to mount an elastic volume.
+
+ :ivar ip_address: The mount target's IPv4 address, used to mount the volume.
+ :vartype ip_address: str
+ :ivar smb_server_fqdn: The SMB server's Fully Qualified Domain Name, FQDN.
+ :vartype smb_server_fqdn: str
+ """
+
+ ip_address: Optional[str] = rest_field(name="ipAddress", visibility=["read"])
+ """The mount target's IPv4 address, used to mount the volume."""
+ smb_server_fqdn: Optional[str] = rest_field(name="smbServerFqdn", visibility=["read"])
+ """The SMB server's Fully Qualified Domain Name, FQDN."""
+
+
+class ElasticSmbPatchProperties(_Model):
+ """SMB Patch Properties.
+
+ :ivar smb_encryption: Used to enable or disable encryption for in-flight SMB data volume. This
+ flag can be modified during Elastic volume update operation as well. Only applicable for SMB
+ protocol Elastic volumes. Known values are: "Enabled" and "Disabled".
+ :vartype smb_encryption: str or ~azure.mgmt.netapp.models.ElasticSmbEncryption
+ """
+
+ smb_encryption: Optional[Union[str, "_models.ElasticSmbEncryption"]] = rest_field(
+ name="smbEncryption", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Used to enable or disable encryption for in-flight SMB data volume. This flag can be modified
+ during Elastic volume update operation as well. Only applicable for SMB protocol Elastic
+ volumes. Known values are: \"Enabled\" and \"Disabled\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ smb_encryption: Optional[Union[str, "_models.ElasticSmbEncryption"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticSmbProperties(_Model):
+ """SMB Properties.
+
+ :ivar smb_encryption: Used to enable or disable encryption for in-flight SMB data volume. This
+ flag can be modified during Elastic volume update operation as well. Only applicable for SMB
+ protocol Elastic volumes. Known values are: "Enabled" and "Disabled".
+ :vartype smb_encryption: str or ~azure.mgmt.netapp.models.ElasticSmbEncryption
+ """
+
+ smb_encryption: Optional[Union[str, "_models.ElasticSmbEncryption"]] = rest_field(
+ name="smbEncryption", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Used to enable or disable encryption for in-flight SMB data volume. This flag can be modified
+ during Elastic volume update operation as well. Only applicable for SMB protocol Elastic
+ volumes. Known values are: \"Enabled\" and \"Disabled\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ smb_encryption: Optional[Union[str, "_models.ElasticSmbEncryption"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticSnapshot(ProxyResource):
+ """NetApp Elastic Snapshot under an Elastic Volume.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticSnapshotProperties
+ """
+
+ properties: Optional["_models.ElasticSnapshotProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ properties: Optional["_models.ElasticSnapshotProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticSnapshotPolicy(TrackedResource):
+ """NetApp Elastic Snapshot Policy under an Elastic Account.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.netapp.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyProperties
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ """
+
+ properties: Optional["_models.ElasticSnapshotPolicyProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """Origin cluster information. Required."""
- cifs_change_notifications: Optional[Union[str, "_models.CifsChangeNotifyState"]] = rest_field(
- name="cifsChangeNotifications", visibility=["read", "create", "update", "delete", "query"]
+ """The resource-specific properties for this resource."""
+ e_tag: Optional[str] = rest_field(name="eTag", visibility=["read"])
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ location: str,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticSnapshotPolicyProperties"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticSnapshotPolicyDailySchedule(_Model):
+ """Daily Schedule properties used to create NetApp snapshot policy.
+
+ :ivar snapshots_to_keep: Daily snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
+ :vartype hour: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ """
+
+ snapshots_to_keep: Optional[int] = rest_field(
+ name="snapshotsToKeep", visibility=["read", "create", "update", "delete", "query"]
)
- """Flag indicating whether a CIFS change notification is enabled for the cache. Known values are:
- \"Disabled\" and \"Enabled\"."""
- global_file_locking: Optional[Union[str, "_models.GlobalFileLockingState"]] = rest_field(
- name="globalFileLocking", visibility=["read", "create"]
+ """Daily snapshot count to keep."""
+ hour: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which hour in UTC timezone a snapshot should be taken."""
+ minute: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which minute snapshot should be taken."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ snapshots_to_keep: Optional[int] = None,
+ hour: Optional[int] = None,
+ minute: Optional[int] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticSnapshotPolicyHourlySchedule(_Model):
+ """Hourly Schedule properties used to create NetApp snapshot policy.
+
+ :ivar snapshots_to_keep: Hourly snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ """
+
+ snapshots_to_keep: Optional[int] = rest_field(
+ name="snapshotsToKeep", visibility=["read", "create", "update", "delete", "query"]
)
- """Flag indicating whether the global file lock is enabled for the cache. Known values are:
- \"Disabled\" and \"Enabled\"."""
- write_back: Optional[Union[str, "_models.EnableWriteBackState"]] = rest_field(
- name="writeBack", visibility=["read", "create", "update", "delete", "query"]
+ """Hourly snapshot count to keep."""
+ minute: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which minute snapshot should be taken."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ snapshots_to_keep: Optional[int] = None,
+ minute: Optional[int] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticSnapshotPolicyMonthlySchedule(_Model):
+ """Monthly Schedule properties used to create NetApp snapshot policy.
+
+ :ivar snapshots_to_keep: Monthly snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar days_of_month: Indicates which days of the month snapshot (1-31) should be taken, accepts
+ a list of integers.
+ :vartype days_of_month: list[int]
+ :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
+ :vartype hour: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ """
+
+ snapshots_to_keep: Optional[int] = rest_field(
+ name="snapshotsToKeep", visibility=["read", "create", "update", "delete", "query"]
)
- """Flag indicating whether writeback is enabled for the cache. Known values are: \"Disabled\" and
- \"Enabled\"."""
- file_access_logs: Optional[Union[str, "_models.CacheFileAccessLogs"]] = rest_field(
- name="fileAccessLogs", visibility=["read"]
+ """Monthly snapshot count to keep."""
+ days_of_month: Optional[list[int]] = rest_field(
+ name="daysOfMonth", visibility=["read", "create", "update", "delete", "query"]
)
- """Flag indicating whether file access logs are enabled for the Cache, based on active diagnostic
- settings present on the Cache. Known values are: \"Enabled\" and \"Disabled\"."""
+ """Indicates which days of the month snapshot (1-31) should be taken, accepts a list of integers."""
+ hour: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which hour in UTC timezone a snapshot should be taken."""
+ minute: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which minute snapshot should be taken."""
@overload
def __init__(
self,
*,
- file_path: str,
- size: int,
- cache_subnet_resource_id: str,
- peering_subnet_resource_id: str,
- encryption_key_source: Union[str, "_models.EncryptionKeySource"],
- origin_cluster_information: "_models.OriginClusterInformation",
- export_policy: Optional["_models.CachePropertiesExportPolicy"] = None,
- protocol_types: Optional[list[Union[str, "_models.ProtocolTypes"]]] = None,
- kerberos: Optional[Union[str, "_models.KerberosState"]] = None,
- smb_settings: Optional["_models.SmbSettings"] = None,
- throughput_mibps: Optional[float] = None,
- key_vault_private_endpoint_resource_id: Optional[str] = None,
- ldap: Optional[Union[str, "_models.LdapState"]] = None,
- ldap_server_type: Optional[Union[str, "_models.LdapServerType"]] = None,
- cifs_change_notifications: Optional[Union[str, "_models.CifsChangeNotifyState"]] = None,
- global_file_locking: Optional[Union[str, "_models.GlobalFileLockingState"]] = None,
- write_back: Optional[Union[str, "_models.EnableWriteBackState"]] = None,
+ snapshots_to_keep: Optional[int] = None,
+ days_of_month: Optional[list[int]] = None,
+ hour: Optional[int] = None,
+ minute: Optional[int] = None,
) -> None: ...
@overload
@@ -2068,23 +4874,61 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class CachePropertiesExportPolicy(_Model):
- """Set of export policy rules.
+class ElasticSnapshotPolicyProperties(_Model):
+ """Elastic Snapshot policy properties.
- :ivar rules: Export policy rule.
- :vartype rules: list[~azure.mgmt.netapp.models.ExportPolicyRule]
+ :ivar hourly_schedule: Schedule for hourly snapshots.
+ :vartype hourly_schedule: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyHourlySchedule
+ :ivar daily_schedule: Schedule for daily snapshots.
+ :vartype daily_schedule: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyDailySchedule
+ :ivar weekly_schedule: Schedule for weekly snapshots.
+ :vartype weekly_schedule: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyWeeklySchedule
+ :ivar monthly_schedule: Schedule for monthly snapshots.
+ :vartype monthly_schedule: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyMonthlySchedule
+ :ivar policy_status: Configures if the snapshot policy is enabled on the volumes connected to
+ the policy. Known values are: "Enabled" and "Disabled".
+ :vartype policy_status: str or ~azure.mgmt.netapp.models.PolicyStatus
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
"""
- rules: Optional[list["_models.ExportPolicyRule"]] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
+ hourly_schedule: Optional["_models.ElasticSnapshotPolicyHourlySchedule"] = rest_field(
+ name="hourlySchedule", visibility=["read", "create", "update", "delete", "query"]
)
- """Export policy rule."""
+ """Schedule for hourly snapshots."""
+ daily_schedule: Optional["_models.ElasticSnapshotPolicyDailySchedule"] = rest_field(
+ name="dailySchedule", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Schedule for daily snapshots."""
+ weekly_schedule: Optional["_models.ElasticSnapshotPolicyWeeklySchedule"] = rest_field(
+ name="weeklySchedule", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Schedule for weekly snapshots."""
+ monthly_schedule: Optional["_models.ElasticSnapshotPolicyMonthlySchedule"] = rest_field(
+ name="monthlySchedule", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Schedule for monthly snapshots."""
+ policy_status: Optional[Union[str, "_models.PolicyStatus"]] = rest_field(
+ name="policyStatus", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Configures if the snapshot policy is enabled on the volumes connected to the policy. Known
+ values are: \"Enabled\" and \"Disabled\"."""
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
@overload
def __init__(
self,
*,
- rules: Optional[list["_models.ExportPolicyRule"]] = None,
+ hourly_schedule: Optional["_models.ElasticSnapshotPolicyHourlySchedule"] = None,
+ daily_schedule: Optional["_models.ElasticSnapshotPolicyDailySchedule"] = None,
+ weekly_schedule: Optional["_models.ElasticSnapshotPolicyWeeklySchedule"] = None,
+ monthly_schedule: Optional["_models.ElasticSnapshotPolicyMonthlySchedule"] = None,
+ policy_status: Optional[Union[str, "_models.PolicyStatus"]] = None,
) -> None: ...
@overload
@@ -2098,18 +4942,18 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class CacheUpdate(_Model):
- """The type used for update operations of the Cache.
+class ElasticSnapshotPolicyUpdate(_Model):
+ """The type used for update operations of the ElasticSnapshotPolicy.
:ivar tags: Resource tags.
:vartype tags: dict[str, str]
:ivar properties: The resource-specific properties for this resource.
- :vartype properties: ~azure.mgmt.netapp.models.CacheUpdateProperties
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdateProperties
"""
tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
"""Resource tags."""
- properties: Optional["_models.CacheUpdateProperties"] = rest_field(
+ properties: Optional["_models.ElasticSnapshotPolicyUpdateProperties"] = rest_field(
visibility=["read", "create", "update", "delete", "query"]
)
"""The resource-specific properties for this resource."""
@@ -2119,7 +4963,7 @@ def __init__(
self,
*,
tags: Optional[dict[str, str]] = None,
- properties: Optional["_models.CacheUpdateProperties"] = None,
+ properties: Optional["_models.ElasticSnapshotPolicyUpdateProperties"] = None,
) -> None: ...
@overload
@@ -2133,82 +4977,102 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class CacheUpdateProperties(_Model):
- """The updatable properties of the Cache.
+class ElasticSnapshotPolicyUpdateProperties(_Model):
+ """The updatable properties of the ElasticSnapshotPolicy.
- :ivar size: Maximum storage quota allowed for a file system in bytes. Valid values are in the
- range 50GiB to 1PiB. Values expressed in bytes as multiples of 1GiB.
- :vartype size: int
- :ivar export_policy: Set of export policy rules.
- :vartype export_policy: ~azure.mgmt.netapp.models.CachePropertiesExportPolicy
- :ivar protocol_types: Set of supported protocol types, which include NFSv3, NFSv4 and SMB
- protocol.
- :vartype protocol_types: list[str or ~azure.mgmt.netapp.models.ProtocolTypes]
- :ivar smb_settings: SMB information for the cache.
- :vartype smb_settings: ~azure.mgmt.netapp.models.SmbSettings
- :ivar throughput_mibps: Maximum throughput in MiB/s that can be achieved by this cache volume
- and this will be accepted as input only for manual qosType cache.
- :vartype throughput_mibps: float
- :ivar key_vault_private_endpoint_resource_id: The resource ID of private endpoint for KeyVault.
- It must reside in the same VNET as the volume. Only applicable if encryptionKeySource =
- 'Microsoft.KeyVault'.
- :vartype key_vault_private_endpoint_resource_id: str
- :ivar cifs_change_notifications: Flag indicating whether a CIFS change notification is enabled
- for the cache. Known values are: "Disabled" and "Enabled".
- :vartype cifs_change_notifications: str or ~azure.mgmt.netapp.models.CifsChangeNotifyState
- :ivar write_back: Flag indicating whether writeback is enabled for the cache. Known values are:
- "Disabled" and "Enabled".
- :vartype write_back: str or ~azure.mgmt.netapp.models.EnableWriteBackState
+ :ivar hourly_schedule: Schedule for hourly snapshots.
+ :vartype hourly_schedule: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyHourlySchedule
+ :ivar daily_schedule: Schedule for daily snapshots.
+ :vartype daily_schedule: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyDailySchedule
+ :ivar weekly_schedule: Schedule for weekly snapshots.
+ :vartype weekly_schedule: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyWeeklySchedule
+ :ivar monthly_schedule: Schedule for monthly snapshots.
+ :vartype monthly_schedule: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyMonthlySchedule
+ :ivar policy_status: Configures if the snapshot policy is enabled on the volumes connected to
+ the policy. Known values are: "Enabled" and "Disabled".
+ :vartype policy_status: str or ~azure.mgmt.netapp.models.PolicyStatus
+ """
+
+ hourly_schedule: Optional["_models.ElasticSnapshotPolicyHourlySchedule"] = rest_field(
+ name="hourlySchedule", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Schedule for hourly snapshots."""
+ daily_schedule: Optional["_models.ElasticSnapshotPolicyDailySchedule"] = rest_field(
+ name="dailySchedule", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Schedule for daily snapshots."""
+ weekly_schedule: Optional["_models.ElasticSnapshotPolicyWeeklySchedule"] = rest_field(
+ name="weeklySchedule", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Schedule for weekly snapshots."""
+ monthly_schedule: Optional["_models.ElasticSnapshotPolicyMonthlySchedule"] = rest_field(
+ name="monthlySchedule", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Schedule for monthly snapshots."""
+ policy_status: Optional[Union[str, "_models.PolicyStatus"]] = rest_field(
+ name="policyStatus", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Configures if the snapshot policy is enabled on the volumes connected to the policy. Known
+ values are: \"Enabled\" and \"Disabled\"."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ hourly_schedule: Optional["_models.ElasticSnapshotPolicyHourlySchedule"] = None,
+ daily_schedule: Optional["_models.ElasticSnapshotPolicyDailySchedule"] = None,
+ weekly_schedule: Optional["_models.ElasticSnapshotPolicyWeeklySchedule"] = None,
+ monthly_schedule: Optional["_models.ElasticSnapshotPolicyMonthlySchedule"] = None,
+ policy_status: Optional[Union[str, "_models.PolicyStatus"]] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class ElasticSnapshotPolicyWeeklySchedule(_Model):
+ """Weekly Schedule properties used to create NetApp snapshot policy.
+
+ :ivar snapshots_to_keep: Weekly snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar days: Indicates which weekday(s) snapshot(s) should be taken, accepts a list of week day
+ names in english.
+ :vartype days: list[str or ~azure.mgmt.netapp.models.DayOfWeek]
+ :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
+ :vartype hour: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
"""
- size: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Maximum storage quota allowed for a file system in bytes. Valid values are in the range 50GiB
- to 1PiB. Values expressed in bytes as multiples of 1GiB."""
- export_policy: Optional["_models.CachePropertiesExportPolicy"] = rest_field(
- name="exportPolicy", visibility=["read", "create", "update", "delete", "query"]
- )
- """Set of export policy rules."""
- protocol_types: Optional[list[Union[str, "_models.ProtocolTypes"]]] = rest_field(
- name="protocolTypes", visibility=["read", "create", "update", "delete", "query"]
- )
- """Set of supported protocol types, which include NFSv3, NFSv4 and SMB protocol."""
- smb_settings: Optional["_models.SmbSettings"] = rest_field(
- name="smbSettings", visibility=["read", "create", "update", "delete", "query"]
- )
- """SMB information for the cache."""
- throughput_mibps: Optional[float] = rest_field(
- name="throughputMibps", visibility=["read", "create", "update", "delete", "query"]
- )
- """Maximum throughput in MiB/s that can be achieved by this cache volume and this will be accepted
- as input only for manual qosType cache."""
- key_vault_private_endpoint_resource_id: Optional[str] = rest_field(
- name="keyVaultPrivateEndpointResourceId", visibility=["read", "create", "update", "delete", "query"]
- )
- """The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the
- volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'."""
- cifs_change_notifications: Optional[Union[str, "_models.CifsChangeNotifyState"]] = rest_field(
- name="cifsChangeNotifications", visibility=["read", "create", "update", "delete", "query"]
+ snapshots_to_keep: Optional[int] = rest_field(
+ name="snapshotsToKeep", visibility=["read", "create", "update", "delete", "query"]
)
- """Flag indicating whether a CIFS change notification is enabled for the cache. Known values are:
- \"Disabled\" and \"Enabled\"."""
- write_back: Optional[Union[str, "_models.EnableWriteBackState"]] = rest_field(
- name="writeBack", visibility=["read", "create", "update", "delete", "query"]
+ """Weekly snapshot count to keep."""
+ days: Optional[list[Union[str, "_models.DayOfWeek"]]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """Flag indicating whether writeback is enabled for the cache. Known values are: \"Disabled\" and
- \"Enabled\"."""
+ """Indicates which weekday(s) snapshot(s) should be taken, accepts a list of week day names in
+ english."""
+ hour: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which hour in UTC timezone a snapshot should be taken."""
+ minute: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Indicates which minute snapshot should be taken."""
@overload
def __init__(
self,
*,
- size: Optional[int] = None,
- export_policy: Optional["_models.CachePropertiesExportPolicy"] = None,
- protocol_types: Optional[list[Union[str, "_models.ProtocolTypes"]]] = None,
- smb_settings: Optional["_models.SmbSettings"] = None,
- throughput_mibps: Optional[float] = None,
- key_vault_private_endpoint_resource_id: Optional[str] = None,
- cifs_change_notifications: Optional[Union[str, "_models.CifsChangeNotifyState"]] = None,
- write_back: Optional[Union[str, "_models.EnableWriteBackState"]] = None,
+ snapshots_to_keep: Optional[int] = None,
+ days: Optional[list[Union[str, "_models.DayOfWeek"]]] = None,
+ hour: Optional[int] = None,
+ minute: Optional[int] = None,
) -> None: ...
@overload
@@ -2222,8 +5086,23 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class CapacityPool(TrackedResource):
- """Capacity pool resource.
+class ElasticSnapshotProperties(_Model):
+ """Elastic Snapshot properties.
+
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ """
+
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+
+
+class ElasticVolume(TrackedResource):
+ """NetApp Elastic Volume resource.
:ivar id: Fully qualified resource ID for the resource. Ex -
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
@@ -2240,43 +5119,37 @@ class CapacityPool(TrackedResource):
:vartype tags: dict[str, str]
:ivar location: The geo-location where the resource lives. Required.
:vartype location: str
- :ivar properties: Capacity pool properties. Required.
- :vartype properties: ~azure.mgmt.netapp.models.PoolProperties
- :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticVolumeProperties
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
the normal etag convention. Entity tags are used for comparing two or more entities from the
same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
- (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
- :vartype etag: str
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ :ivar zones: The availability zones.
+ :vartype zones: list[str]
"""
- properties: "_models.PoolProperties" = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Capacity pool properties. Required."""
- etag: Optional[str] = rest_field(visibility=["read"])
- """\"If etag is provided in the response body, it may also be provided as a header per the normal
+ properties: Optional["_models.ElasticVolumeProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The resource-specific properties for this resource."""
+ e_tag: Optional[str] = rest_field(name="eTag", visibility=["read"])
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
etag convention. Entity tags are used for comparing two or more entities from the same
requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
- 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")."""
-
- __flattened_items = [
- "pool_id",
- "size",
- "service_level",
- "provisioning_state",
- "total_throughput_mibps",
- "utilized_throughput_mibps",
- "custom_throughput_mibps",
- "qos_type",
- "cool_access",
- "encryption_type",
- ]
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+ zones: Optional[list[str]] = rest_field(visibility=["read", "create"])
+ """The availability zones."""
@overload
def __init__(
self,
*,
location: str,
- properties: "_models.PoolProperties",
tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticVolumeProperties"] = None,
+ zones: Optional[list[str]] = None,
) -> None: ...
@overload
@@ -2287,68 +5160,42 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
- _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
- for k, v in _flattened_input.items():
- setattr(self, k, v)
-
- def __getattr__(self, name: str) -> Any:
- if name in self.__flattened_items:
- if self.properties is None:
- return None
- return getattr(self.properties, name)
- raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
-
- def __setattr__(self, key: str, value: Any) -> None:
- if key in self.__flattened_items:
- if self.properties is None:
- self.properties = self._attr_to_rest_field["properties"]._class_type()
- setattr(self.properties, key, value)
- else:
- super().__setattr__(key, value)
-class CapacityPoolPatch(_Model):
- """Capacity pool patch resource.
+class ElasticVolumeBackupProperties(_Model):
+ """Elastic Volume Backup Properties.
- :ivar location: Resource location.
- :vartype location: str
- :ivar id: Resource Id.
- :vartype id: str
- :ivar name: Resource name.
- :vartype name: str
- :ivar type: Resource type.
- :vartype type: str
- :ivar tags: Resource tags.
- :vartype tags: dict[str, str]
- :ivar properties: Capacity pool properties.
- :vartype properties: ~azure.mgmt.netapp.models.PoolPatchProperties
+ :ivar elastic_backup_policy_resource_id: ResourceId used to identify Elastic Backup Policy.
+ :vartype elastic_backup_policy_resource_id: str
+ :ivar policy_enforcement: The property to decide policy is enforced or not on the volume. Known
+ values are: "Enforced" and "NotEnforced".
+ :vartype policy_enforcement: str or ~azure.mgmt.netapp.models.ElasticVolumePolicyEnforcement
+ :ivar elastic_backup_vault_resource_id: ResourceId used to identify Elastic Backup Vault.
+ :vartype elastic_backup_vault_resource_id: str
"""
- location: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Resource location."""
- id: Optional[str] = rest_field(visibility=["read"])
- """Resource Id."""
- name: Optional[str] = rest_field(visibility=["read"])
- """Resource name."""
- type: Optional[str] = rest_field(visibility=["read"])
- """Resource type."""
- tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Resource tags."""
- properties: Optional["_models.PoolPatchProperties"] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
+ elastic_backup_policy_resource_id: Optional[str] = rest_field(
+ name="elasticBackupPolicyResourceId", visibility=["read", "create", "update", "delete", "query"]
)
- """Capacity pool properties."""
-
- __flattened_items = ["size", "qos_type", "cool_access", "custom_throughput_mibps"]
+ """ResourceId used to identify Elastic Backup Policy."""
+ policy_enforcement: Optional[Union[str, "_models.ElasticVolumePolicyEnforcement"]] = rest_field(
+ name="policyEnforcement", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The property to decide policy is enforced or not on the volume. Known values are: \"Enforced\"
+ and \"NotEnforced\"."""
+ elastic_backup_vault_resource_id: Optional[str] = rest_field(
+ name="elasticBackupVaultResourceId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """ResourceId used to identify Elastic Backup Vault."""
@overload
def __init__(
self,
*,
- location: Optional[str] = None,
- tags: Optional[dict[str, str]] = None,
- properties: Optional["_models.PoolPatchProperties"] = None,
+ elastic_backup_policy_resource_id: Optional[str] = None,
+ policy_enforcement: Optional[Union[str, "_models.ElasticVolumePolicyEnforcement"]] = None,
+ elastic_backup_vault_resource_id: Optional[str] = None,
) -> None: ...
@overload
@@ -2359,53 +5206,34 @@ def __init__(self, mapping: Mapping[str, Any]) -> None:
"""
def __init__(self, *args: Any, **kwargs: Any) -> None:
- _flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
super().__init__(*args, **kwargs)
- for k, v in _flattened_input.items():
- setattr(self, k, v)
-
- def __getattr__(self, name: str) -> Any:
- if name in self.__flattened_items:
- if self.properties is None:
- return None
- return getattr(self.properties, name)
- raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
-
- def __setattr__(self, key: str, value: Any) -> None:
- if key in self.__flattened_items:
- if self.properties is None:
- self.properties = self._attr_to_rest_field["properties"]._class_type()
- setattr(self.properties, key, value)
- else:
- super().__setattr__(key, value)
-class CertificateAkvDetails(_Model):
- """Specifies the Azure Key Vault settings for retrieving the bucket server certificate.
+class ElasticVolumeDataProtectionPatchProperties(_Model): # pylint: disable=name-too-long
+ """Data protection configuration option for updating the volume, including snapshot policies and
+ backup.
- :ivar certificate_key_vault_uri: The base URI of the Azure Key Vault that is used when
- retrieving the bucket certificate.
- :vartype certificate_key_vault_uri: str
- :ivar certificate_name: The name of the bucket server certificate stored in the Azure Key
- Vault.
- :vartype certificate_name: str
+ :ivar snapshot: Used to apply a snapshot policy to a volume.
+ :vartype snapshot: ~azure.mgmt.netapp.models.ElasticVolumeSnapshotProperties
+ :ivar backup: Used to configure backups on an elastic volume.
+ :vartype backup: ~azure.mgmt.netapp.models.ElasticVolumeBackupProperties
"""
- certificate_key_vault_uri: Optional[str] = rest_field(
- name="certificateKeyVaultUri", visibility=["read", "create", "update", "delete", "query"]
+ snapshot: Optional["_models.ElasticVolumeSnapshotProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """The base URI of the Azure Key Vault that is used when retrieving the bucket certificate."""
- certificate_name: Optional[str] = rest_field(
- name="certificateName", visibility=["read", "create", "update", "delete", "query"]
+ """Used to apply a snapshot policy to a volume."""
+ backup: Optional["_models.ElasticVolumeBackupProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """The name of the bucket server certificate stored in the Azure Key Vault."""
+ """Used to configure backups on an elastic volume."""
@overload
def __init__(
self,
*,
- certificate_key_vault_uri: Optional[str] = None,
- certificate_name: Optional[str] = None,
+ snapshot: Optional["_models.ElasticVolumeSnapshotProperties"] = None,
+ backup: Optional["_models.ElasticVolumeBackupProperties"] = None,
) -> None: ...
@overload
@@ -2419,45 +5247,30 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class ChangeKeyVault(_Model):
- """Change key vault request.
+class ElasticVolumeDataProtectionProperties(_Model):
+ """Data protection configuration option for the volume, including snapshot policies and backup.
- :ivar key_vault_uri: The URI of the key vault/managed HSM that should be used for encryption.
- Required.
- :vartype key_vault_uri: str
- :ivar key_name: The name of the key that should be used for encryption. Required.
- :vartype key_name: str
- :ivar key_vault_resource_id: Azure resource ID of the key vault/managed HSM that should be used
- for encryption.
- :vartype key_vault_resource_id: str
- :ivar key_vault_private_endpoints: Pairs of virtual network ID and private endpoint ID. Every
- virtual network that has volumes encrypted with customer-managed keys needs its own key vault
- private endpoint. Required.
- :vartype key_vault_private_endpoints: list[~azure.mgmt.netapp.models.KeyVaultPrivateEndpoint]
+ :ivar snapshot: Used to apply a snapshot policy to a volume.
+ :vartype snapshot: ~azure.mgmt.netapp.models.ElasticVolumeSnapshotProperties
+ :ivar backup: Used to configure backups on an elastic volume.
+ :vartype backup: ~azure.mgmt.netapp.models.ElasticVolumeBackupProperties
"""
- key_vault_uri: str = rest_field(name="keyVaultUri", visibility=["read", "create", "update", "delete", "query"])
- """The URI of the key vault/managed HSM that should be used for encryption. Required."""
- key_name: str = rest_field(name="keyName", visibility=["read", "create", "update", "delete", "query"])
- """The name of the key that should be used for encryption. Required."""
- key_vault_resource_id: Optional[str] = rest_field(
- name="keyVaultResourceId", visibility=["read", "create", "update", "delete", "query"]
+ snapshot: Optional["_models.ElasticVolumeSnapshotProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """Azure resource ID of the key vault/managed HSM that should be used for encryption."""
- key_vault_private_endpoints: list["_models.KeyVaultPrivateEndpoint"] = rest_field(
- name="keyVaultPrivateEndpoints", visibility=["read", "create", "update", "delete", "query"]
+ """Used to apply a snapshot policy to a volume."""
+ backup: Optional["_models.ElasticVolumeBackupProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """Pairs of virtual network ID and private endpoint ID. Every virtual network that has volumes
- encrypted with customer-managed keys needs its own key vault private endpoint. Required."""
+ """Used to configure backups on an elastic volume."""
@overload
def __init__(
self,
*,
- key_vault_uri: str,
- key_name: str,
- key_vault_private_endpoints: list["_models.KeyVaultPrivateEndpoint"],
- key_vault_resource_id: Optional[str] = None,
+ snapshot: Optional["_models.ElasticVolumeSnapshotProperties"] = None,
+ backup: Optional["_models.ElasticVolumeBackupProperties"] = None,
) -> None: ...
@overload
@@ -2471,47 +5284,110 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class CheckAvailabilityResponse(_Model):
- """Information regarding availability of a resource.
+class ElasticVolumeProperties(_Model):
+ """Elastic Volume properties.
- :ivar is_available: true indicates name is valid and available. false
- indicates the name is invalid, unavailable, or both.
- :vartype is_available: bool
- :ivar reason: Invalid indicates the name provided does not match Azure App Service
- naming requirements. AlreadyExists indicates that the name is already in use and
- is therefore unavailable. Known values are: "Invalid" and "AlreadyExists".
- :vartype reason: str or ~azure.mgmt.netapp.models.InAvailabilityReasonType
- :ivar message: If reason == invalid, provide the user with the reason why the given name is
- invalid, and provide the resource naming requirements so that the user can select a valid name.
- If reason == AlreadyExists, explain that resource name is already in use, and direct them to
- select a different name.
- :vartype message: str
+ :ivar file_path: A unique file path for the volume. Used when creating mount targets. This
+ needs to be unique within the elastic capacity pool. Required.
+ :vartype file_path: str
+ :ivar size: Maximum size allowed for a volume in bytes. Valid values are in the range 1GiB to
+ 16TiB. Values expressed in bytes as multiples of 1 GiB. Required.
+ :vartype size: int
+ :ivar export_policy: Set of export policy rules.
+ :vartype export_policy: ~azure.mgmt.netapp.models.ElasticExportPolicy
+ :ivar protocol_types: Set of support protocol types for the elastic volume. Required.
+ :vartype protocol_types: list[str or ~azure.mgmt.netapp.models.ElasticProtocolType]
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState
+ :ivar availability_status: Current availability status of the resource. Known values are:
+ "Online" and "Offline".
+ :vartype availability_status: str or
+ ~azure.mgmt.netapp.models.ElasticResourceAvailabilityStatus
+ :ivar snapshot_resource_id: Resource identifier used to identify the Elastic Snapshot.
+ :vartype snapshot_resource_id: str
+ :ivar mount_targets: List of mount targets that can be used to mount this volume.
+ :vartype mount_targets: list[~azure.mgmt.netapp.models.ElasticMountTargetProperties]
+ :ivar data_protection: Data protection configuration option for the volume, including snapshot
+ policies and backup.
+ :vartype data_protection: ~azure.mgmt.netapp.models.ElasticVolumeDataProtectionProperties
+ :ivar snapshot_directory_visibility: Controls the visibility of the volume's read-only snapshot
+ directory, which provides access to each of the volume's snapshots. Known values are: "Hidden"
+ and "Visible".
+ :vartype snapshot_directory_visibility: str or
+ ~azure.mgmt.netapp.models.SnapshotDirectoryVisibility
+ :ivar smb_properties: SMB Properties.
+ :vartype smb_properties: ~azure.mgmt.netapp.models.ElasticSmbProperties
+ :ivar backup_resource_id: Resource identifier used to identify the Elastic Backup.
+ :vartype backup_resource_id: str
+ :ivar restoration_state: The current state of the restoration process. Known values are:
+ "Restoring", "Restored", and "Failed".
+ :vartype restoration_state: str or ~azure.mgmt.netapp.models.ElasticVolumeRestorationState
"""
- is_available: Optional[bool] = rest_field(
- name="isAvailable", visibility=["read", "create", "update", "delete", "query"]
+ file_path: str = rest_field(name="filePath", visibility=["read", "create"])
+ """A unique file path for the volume. Used when creating mount targets. This needs to be unique
+ within the elastic capacity pool. Required."""
+ size: int = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Maximum size allowed for a volume in bytes. Valid values are in the range 1GiB to 16TiB. Values
+ expressed in bytes as multiples of 1 GiB. Required."""
+ export_policy: Optional["_models.ElasticExportPolicy"] = rest_field(
+ name="exportPolicy", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Set of export policy rules."""
+ protocol_types: list[Union[str, "_models.ElasticProtocolType"]] = rest_field(
+ name="protocolTypes", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Set of support protocol types for the elastic volume. Required."""
+ provisioning_state: Optional[Union[str, "_models.NetAppProvisioningState"]] = rest_field(
+ name="provisioningState", visibility=["read"]
+ )
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ availability_status: Optional[Union[str, "_models.ElasticResourceAvailabilityStatus"]] = rest_field(
+ name="availabilityStatus", visibility=["read"]
+ )
+ """Current availability status of the resource. Known values are: \"Online\" and \"Offline\"."""
+ snapshot_resource_id: Optional[str] = rest_field(name="snapshotResourceId", visibility=["read", "create"])
+ """Resource identifier used to identify the Elastic Snapshot."""
+ mount_targets: Optional[list["_models.ElasticMountTargetProperties"]] = rest_field(
+ name="mountTargets", visibility=["read"]
+ )
+ """List of mount targets that can be used to mount this volume."""
+ data_protection: Optional["_models.ElasticVolumeDataProtectionProperties"] = rest_field(
+ name="dataProtection", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Data protection configuration option for the volume, including snapshot policies and backup."""
+ snapshot_directory_visibility: Optional[Union[str, "_models.SnapshotDirectoryVisibility"]] = rest_field(
+ name="snapshotDirectoryVisibility", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Controls the visibility of the volume's read-only snapshot directory, which provides access to
+ each of the volume's snapshots. Known values are: \"Hidden\" and \"Visible\"."""
+ smb_properties: Optional["_models.ElasticSmbProperties"] = rest_field(
+ name="smbProperties", visibility=["read", "create", "update", "delete", "query"]
)
- """true indicates name is valid and available. false indicates the name
- is invalid, unavailable, or both."""
- reason: Optional[Union[str, "_models.InAvailabilityReasonType"]] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
+ """SMB Properties."""
+ backup_resource_id: Optional[str] = rest_field(name="backupResourceId", visibility=["read", "create"])
+ """Resource identifier used to identify the Elastic Backup."""
+ restoration_state: Optional[Union[str, "_models.ElasticVolumeRestorationState"]] = rest_field(
+ name="restorationState", visibility=["read"]
)
- """Invalid indicates the name provided does not match Azure App Service naming
- requirements. AlreadyExists indicates that the name is already in use and is
- therefore unavailable. Known values are: \"Invalid\" and \"AlreadyExists\"."""
- message: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """If reason == invalid, provide the user with the reason why the given name is invalid, and
- provide the resource naming requirements so that the user can select a valid name. If reason ==
- AlreadyExists, explain that resource name is already in use, and direct them to select a
- different name."""
+ """The current state of the restoration process. Known values are: \"Restoring\", \"Restored\",
+ and \"Failed\"."""
@overload
def __init__(
self,
*,
- is_available: Optional[bool] = None,
- reason: Optional[Union[str, "_models.InAvailabilityReasonType"]] = None,
- message: Optional[str] = None,
+ file_path: str,
+ size: int,
+ protocol_types: list[Union[str, "_models.ElasticProtocolType"]],
+ export_policy: Optional["_models.ElasticExportPolicy"] = None,
+ snapshot_resource_id: Optional[str] = None,
+ data_protection: Optional["_models.ElasticVolumeDataProtectionProperties"] = None,
+ snapshot_directory_visibility: Optional[Union[str, "_models.SnapshotDirectoryVisibility"]] = None,
+ smb_properties: Optional["_models.ElasticSmbProperties"] = None,
+ backup_resource_id: Optional[str] = None,
) -> None: ...
@overload
@@ -2525,21 +5401,21 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class CifsUser(_Model):
- """The effective CIFS username when accessing the volume data.
+class ElasticVolumeRevert(_Model):
+ """Reverts the elastic volume to the specified snapshot.
- :ivar username: The CIFS user's username.
- :vartype username: str
+ :ivar snapshot_resource_id: Resource identifier used to identify the Elastic Snapshot.
+ :vartype snapshot_resource_id: str
"""
- username: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """The CIFS user's username."""
+ snapshot_resource_id: Optional[str] = rest_field(name="snapshotResourceId", visibility=["read", "create"])
+ """Resource identifier used to identify the Elastic Snapshot."""
@overload
def __init__(
self,
*,
- username: Optional[str] = None,
+ snapshot_resource_id: Optional[str] = None,
) -> None: ...
@overload
@@ -2553,23 +5429,23 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class ClusterPeerCommandResponse(_Model):
- """Information about cluster peering process.
+class ElasticVolumeSnapshotProperties(_Model):
+ """Elastic Volume Snapshot Properties.
- :ivar properties: Represents the properties of the cluster peer command response.
- :vartype properties: ~azure.mgmt.netapp.models.ClusterPeerCommandResponseProperties
+ :ivar snapshot_policy_resource_id: Snapshot Policy ResourceId.
+ :vartype snapshot_policy_resource_id: str
"""
- properties: Optional["_models.ClusterPeerCommandResponseProperties"] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
+ snapshot_policy_resource_id: Optional[str] = rest_field(
+ name="snapshotPolicyResourceId", visibility=["read", "create", "update", "delete", "query"]
)
- """Represents the properties of the cluster peer command response."""
+ """Snapshot Policy ResourceId."""
@overload
def __init__(
self,
*,
- properties: Optional["_models.ClusterPeerCommandResponseProperties"] = None,
+ snapshot_policy_resource_id: Optional[str] = None,
) -> None: ...
@overload
@@ -2583,30 +5459,28 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class ClusterPeerCommandResponseProperties(_Model):
- """Properties of the cluster peer command response.
+class ElasticVolumeUpdate(_Model):
+ """The type used for update operations of the ElasticVolume.
- :ivar cluster_peering_command: ClusterPeeringCommand to run to accept cluster peer. Will only
- be present if clusterPeeringStatus is pending.
- :vartype cluster_peering_command: str
- :ivar passphrase: Passphrase for use with cluster peer command.
- :vartype passphrase: str
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: ~azure.mgmt.netapp.models.ElasticVolumeUpdateProperties
"""
- cluster_peering_command: Optional[str] = rest_field(
- name="clusterPeeringCommand", visibility=["read", "create", "update", "delete", "query"]
+ tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Resource tags."""
+ properties: Optional["_models.ElasticVolumeUpdateProperties"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
)
- """ClusterPeeringCommand to run to accept cluster peer. Will only be present if
- clusterPeeringStatus is pending."""
- passphrase: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Passphrase for use with cluster peer command."""
+ """The resource-specific properties for this resource."""
@overload
def __init__(
self,
*,
- cluster_peering_command: Optional[str] = None,
- passphrase: Optional[str] = None,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.ElasticVolumeUpdateProperties"] = None,
) -> None: ...
@overload
@@ -2620,43 +5494,56 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class CredentialsAkvDetails(_Model):
- """Specifies the Azure Key Vault settings for storing the bucket credentials.
-
- :ivar credentials_key_vault_uri: The base URI of the Azure Key Vault that is used when storing
- the bucket credentials.
- :vartype credentials_key_vault_uri: str
- :ivar secret_name: The name of the secret stored in Azure Key Vault. The associated key pair
- has the following structure:
+class ElasticVolumeUpdateProperties(_Model):
+ """The updatable properties of the ElasticVolume.
- {
- "access_key_id": "",
- "secret_access_key": ""
- }.
- :vartype secret_name: str
+ :ivar size: Maximum size allowed for a volume in bytes. Valid values are in the range 1GiB to
+ 16TiB. Values expressed in bytes as multiples of 1 GiB.
+ :vartype size: int
+ :ivar export_policy: Set of export policy rules.
+ :vartype export_policy: ~azure.mgmt.netapp.models.ElasticExportPolicy
+ :ivar data_protection: Data protection configuration option for the volume, including snapshot
+ policies and backup.
+ :vartype data_protection: ~azure.mgmt.netapp.models.ElasticVolumeDataProtectionPatchProperties
+ :ivar snapshot_directory_visibility: Controls the visibility of the volume's read-only snapshot
+ directory, which provides access to each of the volume's snapshots. Known values are: "Hidden"
+ and "Visible".
+ :vartype snapshot_directory_visibility: str or
+ ~azure.mgmt.netapp.models.SnapshotDirectoryVisibility
+ :ivar smb_properties: SMB Properties.
+ :vartype smb_properties: ~azure.mgmt.netapp.models.ElasticSmbPatchProperties
"""
- credentials_key_vault_uri: Optional[str] = rest_field(
- name="credentialsKeyVaultUri", visibility=["read", "create", "update", "delete", "query"]
+ size: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Maximum size allowed for a volume in bytes. Valid values are in the range 1GiB to 16TiB. Values
+ expressed in bytes as multiples of 1 GiB."""
+ export_policy: Optional["_models.ElasticExportPolicy"] = rest_field(
+ name="exportPolicy", visibility=["read", "create", "update", "delete", "query"]
)
- """The base URI of the Azure Key Vault that is used when storing the bucket credentials."""
- secret_name: Optional[str] = rest_field(
- name="secretName", visibility=["read", "create", "update", "delete", "query"]
+ """Set of export policy rules."""
+ data_protection: Optional["_models.ElasticVolumeDataProtectionPatchProperties"] = rest_field(
+ name="dataProtection", visibility=["read", "create", "update", "delete", "query"]
)
- """The name of the secret stored in Azure Key Vault. The associated key pair has the following
- structure:
-
- {
- \"access_key_id\": \"\",
- \"secret_access_key\": \"\"
- }."""
+ """Data protection configuration option for the volume, including snapshot policies and backup."""
+ snapshot_directory_visibility: Optional[Union[str, "_models.SnapshotDirectoryVisibility"]] = rest_field(
+ name="snapshotDirectoryVisibility", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Controls the visibility of the volume's read-only snapshot directory, which provides access to
+ each of the volume's snapshots. Known values are: \"Hidden\" and \"Visible\"."""
+ smb_properties: Optional["_models.ElasticSmbPatchProperties"] = rest_field(
+ name="smbProperties", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """SMB Properties."""
@overload
def __init__(
self,
*,
- credentials_key_vault_uri: Optional[str] = None,
- secret_name: Optional[str] = None,
+ size: Optional[int] = None,
+ export_policy: Optional["_models.ElasticExportPolicy"] = None,
+ data_protection: Optional["_models.ElasticVolumeDataProtectionPatchProperties"] = None,
+ snapshot_directory_visibility: Optional[Union[str, "_models.SnapshotDirectoryVisibility"]] = None,
+ smb_properties: Optional["_models.ElasticSmbPatchProperties"] = None,
) -> None: ...
@overload
@@ -2670,38 +5557,40 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class DailySchedule(_Model):
- """Daily Schedule properties.
+class EncryptionIdentity(_Model):
+ """Identity used to authenticate with key vault.
- :ivar snapshots_to_keep: Daily snapshot count to keep.
- :vartype snapshots_to_keep: int
- :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
- :vartype hour: int
- :ivar minute: Indicates which minute snapshot should be taken.
- :vartype minute: int
- :ivar used_bytes: Resource size in bytes, current storage usage for the volume in bytes.
- :vartype used_bytes: int
+ :ivar principal_id: The principal ID (object ID) of the identity used to authenticate with key
+ vault. Read-only.
+ :vartype principal_id: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault. Applicable if identity.type has 'UserAssigned'. It should match
+ key of identity.userAssignedIdentities.
+ :vartype user_assigned_identity: str
+ :ivar federated_client_id: ClientId of the multi-tenant Entra ID Application. Used to access
+ cross-tenant keyvaults.
+ :vartype federated_client_id: str
"""
- snapshots_to_keep: Optional[int] = rest_field(
- name="snapshotsToKeep", visibility=["read", "create", "update", "delete", "query"]
+ principal_id: Optional[str] = rest_field(name="principalId", visibility=["read"])
+ """The principal ID (object ID) of the identity used to authenticate with key vault. Read-only."""
+ user_assigned_identity: Optional[str] = rest_field(
+ name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
)
- """Daily snapshot count to keep."""
- hour: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Indicates which hour in UTC timezone a snapshot should be taken."""
- minute: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Indicates which minute snapshot should be taken."""
- used_bytes: Optional[int] = rest_field(name="usedBytes", visibility=["read", "create", "update", "delete", "query"])
- """Resource size in bytes, current storage usage for the volume in bytes."""
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault.
+ Applicable if identity.type has 'UserAssigned'. It should match key of
+ identity.userAssignedIdentities."""
+ federated_client_id: Optional[str] = rest_field(
+ name="federatedClientId", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """ClientId of the multi-tenant Entra ID Application. Used to access cross-tenant keyvaults."""
@overload
def __init__(
self,
*,
- snapshots_to_keep: Optional[int] = None,
- hour: Optional[int] = None,
- minute: Optional[int] = None,
- used_bytes: Optional[int] = None,
+ user_assigned_identity: Optional[str] = None,
+ federated_client_id: Optional[str] = None,
) -> None: ...
@overload
@@ -2715,42 +5604,31 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class DestinationReplication(_Model):
- """Destination replication properties.
+class EncryptionTransitionRequest(_Model):
+ """Encryption transition request.
- :ivar resource_id: The resource ID of the remote volume.
- :vartype resource_id: str
- :ivar replication_type: Indicates whether the replication is cross zone or cross region. Known
- values are: "CrossRegionReplication" and "CrossZoneReplication".
- :vartype replication_type: str or ~azure.mgmt.netapp.models.ReplicationType
- :ivar region: The remote region for the destination volume.
- :vartype region: str
- :ivar zone: The remote zone for the destination volume.
- :vartype zone: str
+ :ivar virtual_network_id: Identifier for the virtual network. Required.
+ :vartype virtual_network_id: str
+ :ivar private_endpoint_id: Identifier of the private endpoint to reach the Azure Key Vault.
+ Required.
+ :vartype private_endpoint_id: str
"""
- resource_id: Optional[str] = rest_field(
- name="resourceId", visibility=["read", "create", "update", "delete", "query"]
+ virtual_network_id: str = rest_field(
+ name="virtualNetworkId", visibility=["read", "create", "update", "delete", "query"]
)
- """The resource ID of the remote volume."""
- replication_type: Optional[Union[str, "_models.ReplicationType"]] = rest_field(
- name="replicationType", visibility=["read", "create", "update", "delete", "query"]
+ """Identifier for the virtual network. Required."""
+ private_endpoint_id: str = rest_field(
+ name="privateEndpointId", visibility=["read", "create", "update", "delete", "query"]
)
- """Indicates whether the replication is cross zone or cross region. Known values are:
- \"CrossRegionReplication\" and \"CrossZoneReplication\"."""
- region: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """The remote region for the destination volume."""
- zone: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """The remote zone for the destination volume."""
+ """Identifier of the private endpoint to reach the Azure Key Vault. Required."""
@overload
def __init__(
self,
*,
- resource_id: Optional[str] = None,
- replication_type: Optional[Union[str, "_models.ReplicationType"]] = None,
- region: Optional[str] = None,
- zone: Optional[str] = None,
+ virtual_network_id: str,
+ private_endpoint_id: str,
) -> None: ...
@overload
@@ -2764,28 +5642,41 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class Dimension(_Model):
- """Dimension of blobs, possibly be blob type or access tier.
+class EntraIdAkvConfig(_Model):
+ """Using AKV config, certificate will be fetched, which will contain private key & public
+ certificate, that correspond to the public certificate which is uploaded on the application
+ created by customer. This will be used further for authentication.
- :ivar name: Display name of dimension.
- :vartype name: str
- :ivar display_name: Display name of dimension.
- :vartype display_name: str
+ :ivar azure_key_vault_uri: The Azure Key Vault URI where the Entra ID credentials are stored.
+ Required.
+ :vartype azure_key_vault_uri: str
+ :ivar certificate_name: The name of the certificate in Azure Key Vault. Required.
+ :vartype certificate_name: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault.
+ :vartype user_assigned_identity: str
"""
- name: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Display name of dimension."""
- display_name: Optional[str] = rest_field(
- name="displayName", visibility=["read", "create", "update", "delete", "query"]
+ azure_key_vault_uri: str = rest_field(
+ name="azureKeyVaultUri", visibility=["read", "create", "update", "delete", "query"]
)
- """Display name of dimension."""
+ """The Azure Key Vault URI where the Entra ID credentials are stored. Required."""
+ certificate_name: str = rest_field(
+ name="certificateName", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The name of the certificate in Azure Key Vault. Required."""
+ user_assigned_identity: Optional[str] = rest_field(
+ name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault."""
@overload
def __init__(
self,
*,
- name: Optional[str] = None,
- display_name: Optional[str] = None,
+ azure_key_vault_uri: str,
+ certificate_name: str,
+ user_assigned_identity: Optional[str] = None,
) -> None: ...
@overload
@@ -2799,40 +5690,38 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class EncryptionIdentity(_Model):
- """Identity used to authenticate with key vault.
+class EntraIdAkvConfigPatch(_Model):
+ """Entra ID Patch configuration for the account.
- :ivar principal_id: The principal ID (object ID) of the identity used to authenticate with key
- vault. Read-only.
- :vartype principal_id: str
+ :ivar azure_key_vault_uri: The Azure Key Vault URI where the Entra ID credentials are stored.
+ :vartype azure_key_vault_uri: str
+ :ivar certificate_name: The name of the certificate in Azure Key Vault.
+ :vartype certificate_name: str
:ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
- authenticate with key vault. Applicable if identity.type has 'UserAssigned'. It should match
- key of identity.userAssignedIdentities.
+ authenticate with key vault.
:vartype user_assigned_identity: str
- :ivar federated_client_id: ClientId of the multi-tenant Entra ID Application. Used to access
- cross-tenant keyvaults.
- :vartype federated_client_id: str
"""
- principal_id: Optional[str] = rest_field(name="principalId", visibility=["read"])
- """The principal ID (object ID) of the identity used to authenticate with key vault. Read-only."""
+ azure_key_vault_uri: Optional[str] = rest_field(
+ name="azureKeyVaultUri", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The Azure Key Vault URI where the Entra ID credentials are stored."""
+ certificate_name: Optional[str] = rest_field(
+ name="certificateName", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The name of the certificate in Azure Key Vault."""
user_assigned_identity: Optional[str] = rest_field(
name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
)
- """The ARM resource identifier of the user assigned identity used to authenticate with key vault.
- Applicable if identity.type has 'UserAssigned'. It should match key of
- identity.userAssignedIdentities."""
- federated_client_id: Optional[str] = rest_field(
- name="federatedClientId", visibility=["read", "create", "update", "delete", "query"]
- )
- """ClientId of the multi-tenant Entra ID Application. Used to access cross-tenant keyvaults."""
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault."""
@overload
def __init__(
self,
*,
+ azure_key_vault_uri: Optional[str] = None,
+ certificate_name: Optional[str] = None,
user_assigned_identity: Optional[str] = None,
- federated_client_id: Optional[str] = None,
) -> None: ...
@overload
@@ -2846,31 +5735,107 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
-class EncryptionTransitionRequest(_Model):
- """Encryption transition request.
+class EntraIdConfig(_Model):
+ """Entra ID configuration for the account.
+
+ :ivar application_id: ApplicationId of the app created by customer to provide authentication
+ and required API permissions for Microsoft Graph endpoint. Required.
+ :vartype application_id: str
+ :ivar domain: Domain of the Active directory synced to Entra ID for hybrid identities.
+ Required.
+ :vartype domain: str
+ :ivar server_name_prefix: Using ServerNamePrefix, FQDN (Fully Qualified Domain Name) will be
+ generated for SMB share, using this FQDN, SMB Share will be mounted on Entra Joined VM.
+ Required.
+ :vartype server_name_prefix: str
+ :ivar entra_id_akv_config: Using AKV config, certificate will be fetched, which will contain
+ private key & public certificate, that correspond to the public certificate which is uploaded
+ on the application created by customer. This will be used further for authentication.
+ :vartype entra_id_akv_config: ~azure.mgmt.netapp.models.EntraIdAkvConfig
+ """
+
+ application_id: str = rest_field(name="applicationId", visibility=["read", "create", "update", "delete", "query"])
+ """ApplicationId of the app created by customer to provide authentication and required API
+ permissions for Microsoft Graph endpoint. Required."""
+ domain: str = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Domain of the Active directory synced to Entra ID for hybrid identities. Required."""
+ server_name_prefix: str = rest_field(
+ name="serverNamePrefix", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Using ServerNamePrefix, FQDN (Fully Qualified Domain Name) will be generated for SMB share,
+ using this FQDN, SMB Share will be mounted on Entra Joined VM. Required."""
+ entra_id_akv_config: Optional["_models.EntraIdAkvConfig"] = rest_field(
+ name="entraIdAkvConfig", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Using AKV config, certificate will be fetched, which will contain private key & public
+ certificate, that correspond to the public certificate which is uploaded on the application
+ created by customer. This will be used further for authentication."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ application_id: str,
+ domain: str,
+ server_name_prefix: str,
+ entra_id_akv_config: Optional["_models.EntraIdAkvConfig"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class EntraIdConfigPatch(_Model):
+ """Entra ID Patch configuration for the account.
- :ivar virtual_network_id: Identifier for the virtual network. Required.
- :vartype virtual_network_id: str
- :ivar private_endpoint_id: Identifier of the private endpoint to reach the Azure Key Vault.
- Required.
- :vartype private_endpoint_id: str
+ :ivar application_id: ApplicationId of the app created by customer to provide authentication
+ and required API permissions for Microsoft Graph endpoint.
+ :vartype application_id: str
+ :ivar domain: Domain of the Active directory synced to Entra ID for hybrid identities.
+ :vartype domain: str
+ :ivar server_name_prefix: Using ServerNamePrefix, FQDN (Fully Qualified Domain Name) will be
+ generated for SMB share, using this FQDN, SMB Share will be mounted on Entra Joined VM.
+ :vartype server_name_prefix: str
+ :ivar entra_id_akv_config: Using AKV config, certificate will be fetched, which will contain
+ private key & public certificate, that correspond to the public certificate which is uploaded
+ on the application created by customer. This will be used further for authentication.
+ :vartype entra_id_akv_config: ~azure.mgmt.netapp.models.EntraIdAkvConfigPatch
"""
- virtual_network_id: str = rest_field(
- name="virtualNetworkId", visibility=["read", "create", "update", "delete", "query"]
+ application_id: Optional[str] = rest_field(
+ name="applicationId", visibility=["read", "create", "update", "delete", "query"]
)
- """Identifier for the virtual network. Required."""
- private_endpoint_id: str = rest_field(
- name="privateEndpointId", visibility=["read", "create", "update", "delete", "query"]
+ """ApplicationId of the app created by customer to provide authentication and required API
+ permissions for Microsoft Graph endpoint."""
+ domain: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Domain of the Active directory synced to Entra ID for hybrid identities."""
+ server_name_prefix: Optional[str] = rest_field(
+ name="serverNamePrefix", visibility=["read", "create", "update", "delete", "query"]
)
- """Identifier of the private endpoint to reach the Azure Key Vault. Required."""
+ """Using ServerNamePrefix, FQDN (Fully Qualified Domain Name) will be generated for SMB share,
+ using this FQDN, SMB Share will be mounted on Entra Joined VM."""
+ entra_id_akv_config: Optional["_models.EntraIdAkvConfigPatch"] = rest_field(
+ name="entraIdAkvConfig", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Using AKV config, certificate will be fetched, which will contain private key & public
+ certificate, that correspond to the public certificate which is uploaded on the application
+ created by customer. This will be used further for authentication."""
@overload
def __init__(
self,
*,
- virtual_network_id: str,
- private_endpoint_id: str,
+ application_id: Optional[str] = None,
+ domain: Optional[str] = None,
+ server_name_prefix: Optional[str] = None,
+ entra_id_akv_config: Optional["_models.EntraIdAkvConfigPatch"] = None,
) -> None: ...
@overload
@@ -3462,6 +6427,244 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
+class LdapConfiguration(_Model):
+ """LDAP configuration.
+
+ :ivar domain: Name of the LDAP configuration domain.
+ :vartype domain: str
+ :ivar ldap_servers: List of LDAP server IP addresses (IPv4 only) for the LDAP domain.
+ :vartype ldap_servers: list[str]
+ :ivar ldap_over_tls: Specifies whether or not the LDAP traffic needs to be secured via TLS.
+ :vartype ldap_over_tls: bool
+ :ivar server_ca_certificate: When LDAP over SSL/TLS is enabled, the LDAP client is required to
+ have base64 encoded ldap servers CA certificate.
+ :vartype server_ca_certificate: str
+ :ivar certificate_cn_host: The CN host name used while generating the certificate, LDAP Over
+ TLS requires the CN host name to create DNS host entry.
+ :vartype certificate_cn_host: str
+ :ivar dns_servers: List of DNS server IPv4 addresses for resolving the CN host certificate.
+ This parameter is used when LDAP over TLS is enabled.
+ :vartype dns_servers: list[str]
+ :ivar ldap_port: Port number for LDAP communication. Default is 389 for LDAP.
+ :vartype ldap_port: int
+ :ivar user_dn: This specifies the user DN (Distinguished Name), which overrides the base DN for
+ user lookups.
+ :vartype user_dn: str
+ :ivar group_dn: This specifies the group DN (Distinguished Name), which overrides the base DN
+ for group lookups.
+ :vartype group_dn: str
+ :ivar net_group_dn: This specifies the netgroup DN (Distinguished Name), which overrides the
+ base DN for netgroup lookups.
+ :vartype net_group_dn: str
+ :ivar bind_authentication_level: The authentication level to use when binding to the LDAP
+ server, defaults to Anonymous. Known values are: "Anonymous" and "Simple".
+ :vartype bind_authentication_level: str or ~azure.mgmt.netapp.models.BindAuthenticationLevel
+ :ivar bind_dn: The distinguished name (DN) to bind as when performing LDAP operations.
+ :vartype bind_dn: str
+ :ivar bind_password_akv_config: The Azure Key Vault configuration where the Bind DN
+ (Distinguished Name) user password is stored.
+ :vartype bind_password_akv_config: ~azure.mgmt.netapp.models.BindPasswordAkvConfig
+ """
+
+ domain: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Name of the LDAP configuration domain."""
+ ldap_servers: Optional[list[str]] = rest_field(
+ name="ldapServers", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """List of LDAP server IP addresses (IPv4 only) for the LDAP domain."""
+ ldap_over_tls: Optional[bool] = rest_field(
+ name="ldapOverTLS", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Specifies whether or not the LDAP traffic needs to be secured via TLS."""
+ server_ca_certificate: Optional[str] = rest_field(
+ name="serverCACertificate", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """When LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded ldap
+ servers CA certificate."""
+ certificate_cn_host: Optional[str] = rest_field(
+ name="certificateCNHost", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The CN host name used while generating the certificate, LDAP Over TLS requires the CN host name
+ to create DNS host entry."""
+ dns_servers: Optional[list[str]] = rest_field(
+ name="dnsServers", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """List of DNS server IPv4 addresses for resolving the CN host certificate. This parameter is used
+ when LDAP over TLS is enabled."""
+ ldap_port: Optional[int] = rest_field(name="ldapPort", visibility=["read", "create", "update", "delete", "query"])
+ """Port number for LDAP communication. Default is 389 for LDAP."""
+ user_dn: Optional[str] = rest_field(name="userDN", visibility=["read", "create", "update", "delete", "query"])
+ """This specifies the user DN (Distinguished Name), which overrides the base DN for user lookups."""
+ group_dn: Optional[str] = rest_field(name="groupDN", visibility=["read", "create", "update", "delete", "query"])
+ """This specifies the group DN (Distinguished Name), which overrides the base DN for group
+ lookups."""
+ net_group_dn: Optional[str] = rest_field(
+ name="netGroupDN", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """This specifies the netgroup DN (Distinguished Name), which overrides the base DN for netgroup
+ lookups."""
+ bind_authentication_level: Optional[Union[str, "_models.BindAuthenticationLevel"]] = rest_field(
+ name="bindAuthenticationLevel", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The authentication level to use when binding to the LDAP server, defaults to Anonymous. Known
+ values are: \"Anonymous\" and \"Simple\"."""
+ bind_dn: Optional[str] = rest_field(name="bindDN", visibility=["read", "create", "update", "delete", "query"])
+ """The distinguished name (DN) to bind as when performing LDAP operations."""
+ bind_password_akv_config: Optional["_models.BindPasswordAkvConfig"] = rest_field(
+ name="bindPasswordAkvConfig", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The Azure Key Vault configuration where the Bind DN (Distinguished Name) user password is
+ stored."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ domain: Optional[str] = None,
+ ldap_servers: Optional[list[str]] = None,
+ ldap_over_tls: Optional[bool] = None,
+ server_ca_certificate: Optional[str] = None,
+ certificate_cn_host: Optional[str] = None,
+ dns_servers: Optional[list[str]] = None,
+ ldap_port: Optional[int] = None,
+ user_dn: Optional[str] = None,
+ group_dn: Optional[str] = None,
+ net_group_dn: Optional[str] = None,
+ bind_authentication_level: Optional[Union[str, "_models.BindAuthenticationLevel"]] = None,
+ bind_dn: Optional[str] = None,
+ bind_password_akv_config: Optional["_models.BindPasswordAkvConfig"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class LdapConfigurationPatch(_Model):
+ """LDAP configuration for PATCH operations (no default values).
+
+ :ivar domain: Name of the LDAP configuration domain.
+ :vartype domain: str
+ :ivar ldap_servers: List of LDAP server IP addresses (IPv4 only) for the LDAP domain.
+ :vartype ldap_servers: list[str]
+ :ivar ldap_over_tls: Specifies whether or not the LDAP traffic needs to be secured via TLS.
+ :vartype ldap_over_tls: bool
+ :ivar server_ca_certificate: When LDAP over SSL/TLS is enabled, the LDAP client is required to
+ have base64 encoded ldap servers CA certificate.
+ :vartype server_ca_certificate: str
+ :ivar certificate_cn_host: The CN host name used while generating the certificate, LDAP Over
+ TLS requires the CN host name to create DNS host entry.
+ :vartype certificate_cn_host: str
+ :ivar dns_servers: List of DNS server IPv4 addresses for resolving the CN host certificate.
+ This parameter is used when LDAP over TLS is enabled.
+ :vartype dns_servers: list[str]
+ :ivar ldap_port: Port number for LDAP communication. Default is 389 for LDAP.
+ :vartype ldap_port: int
+ :ivar user_dn: This specifies the user DN (Distinguished Name), which overrides the base DN for
+ user lookups.
+ :vartype user_dn: str
+ :ivar group_dn: This specifies the group DN (Distinguished Name), which overrides the base DN
+ for group lookups.
+ :vartype group_dn: str
+ :ivar net_group_dn: This specifies the netgroup DN (Distinguished Name), which overrides the
+ base DN for netgroup lookups.
+ :vartype net_group_dn: str
+ :ivar bind_authentication_level: The authentication level to use when binding to the LDAP
+ server, defaults to Anonymous. Known values are: "Anonymous" and "Simple".
+ :vartype bind_authentication_level: str or ~azure.mgmt.netapp.models.BindAuthenticationLevel
+ :ivar bind_dn: The distinguished name (DN) to bind as when performing LDAP operations.
+ :vartype bind_dn: str
+ :ivar bind_password_akv_config: The Azure Key Vault configuration where the Bind DN
+ (Distinguished Name) user password is stored.
+ :vartype bind_password_akv_config: ~azure.mgmt.netapp.models.BindPasswordAkvConfigPatch
+ """
+
+ domain: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
+ """Name of the LDAP configuration domain."""
+ ldap_servers: Optional[list[str]] = rest_field(
+ name="ldapServers", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """List of LDAP server IP addresses (IPv4 only) for the LDAP domain."""
+ ldap_over_tls: Optional[bool] = rest_field(
+ name="ldapOverTLS", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Specifies whether or not the LDAP traffic needs to be secured via TLS."""
+ server_ca_certificate: Optional[str] = rest_field(
+ name="serverCACertificate", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """When LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded ldap
+ servers CA certificate."""
+ certificate_cn_host: Optional[str] = rest_field(
+ name="certificateCNHost", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The CN host name used while generating the certificate, LDAP Over TLS requires the CN host name
+ to create DNS host entry."""
+ dns_servers: Optional[list[str]] = rest_field(
+ name="dnsServers", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """List of DNS server IPv4 addresses for resolving the CN host certificate. This parameter is used
+ when LDAP over TLS is enabled."""
+ ldap_port: Optional[int] = rest_field(name="ldapPort", visibility=["read", "create", "update", "delete", "query"])
+ """Port number for LDAP communication. Default is 389 for LDAP."""
+ user_dn: Optional[str] = rest_field(name="userDN", visibility=["read", "create", "update", "delete", "query"])
+ """This specifies the user DN (Distinguished Name), which overrides the base DN for user lookups."""
+ group_dn: Optional[str] = rest_field(name="groupDN", visibility=["read", "create", "update", "delete", "query"])
+ """This specifies the group DN (Distinguished Name), which overrides the base DN for group
+ lookups."""
+ net_group_dn: Optional[str] = rest_field(
+ name="netGroupDN", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """This specifies the netgroup DN (Distinguished Name), which overrides the base DN for netgroup
+ lookups."""
+ bind_authentication_level: Optional[Union[str, "_models.BindAuthenticationLevel"]] = rest_field(
+ name="bindAuthenticationLevel", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The authentication level to use when binding to the LDAP server, defaults to Anonymous. Known
+ values are: \"Anonymous\" and \"Simple\"."""
+ bind_dn: Optional[str] = rest_field(name="bindDN", visibility=["read", "create", "update", "delete", "query"])
+ """The distinguished name (DN) to bind as when performing LDAP operations."""
+ bind_password_akv_config: Optional["_models.BindPasswordAkvConfigPatch"] = rest_field(
+ name="bindPasswordAkvConfig", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The Azure Key Vault configuration where the Bind DN (Distinguished Name) user password is
+ stored."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ domain: Optional[str] = None,
+ ldap_servers: Optional[list[str]] = None,
+ ldap_over_tls: Optional[bool] = None,
+ server_ca_certificate: Optional[str] = None,
+ certificate_cn_host: Optional[str] = None,
+ dns_servers: Optional[list[str]] = None,
+ ldap_port: Optional[int] = None,
+ user_dn: Optional[str] = None,
+ group_dn: Optional[str] = None,
+ net_group_dn: Optional[str] = None,
+ bind_authentication_level: Optional[Union[str, "_models.BindAuthenticationLevel"]] = None,
+ bind_dn: Optional[str] = None,
+ bind_password_akv_config: Optional["_models.BindPasswordAkvConfigPatch"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
class LdapSearchScopeOpt(_Model):
"""LDAP search scope.
@@ -3957,10 +7160,12 @@ class NetAppAccount(TrackedResource):
__flattened_items = [
"provisioning_state",
"active_directories",
+ "entra_id_config",
"encryption",
"disable_showmount",
"nfs_v4_id_domain",
"multi_ad_status",
+ "ldap_configuration",
]
@overload
@@ -4005,58 +7210,40 @@ def __setattr__(self, key: str, value: Any) -> None:
class NetAppAccountPatch(_Model):
"""NetApp account patch resource.
- :ivar location: Resource location.
- :vartype location: str
- :ivar id: Resource Id.
- :vartype id: str
- :ivar name: Resource name.
- :vartype name: str
- :ivar type: Resource type.
- :vartype type: str
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: ~azure.mgmt.netapp.models.ManagedServiceIdentity
:ivar tags: Resource tags.
:vartype tags: dict[str, str]
:ivar properties: NetApp Account properties.
- :vartype properties: ~azure.mgmt.netapp.models.AccountProperties
- :ivar identity: The identity used for the resource.
- :vartype identity: ~azure.mgmt.netapp.models.ManagedServiceIdentity
+ :vartype properties: ~azure.mgmt.netapp.models.AccountPropertiesPatch
"""
- location: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Resource location."""
- id: Optional[str] = rest_field(visibility=["read"])
- """Resource Id."""
- name: Optional[str] = rest_field(visibility=["read"])
- """Resource name."""
- type: Optional[str] = rest_field(visibility=["read"])
- """Resource type."""
+ identity: Optional["_models.ManagedServiceIdentity"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The managed service identities assigned to this resource."""
tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
"""Resource tags."""
- properties: Optional["_models.AccountProperties"] = rest_field(
+ properties: Optional["_models.AccountPropertiesPatch"] = rest_field(
visibility=["read", "create", "update", "delete", "query"]
)
"""NetApp Account properties."""
- identity: Optional["_models.ManagedServiceIdentity"] = rest_field(
- visibility=["read", "create", "update", "delete", "query"]
- )
- """The identity used for the resource."""
__flattened_items = [
- "provisioning_state",
"active_directories",
"encryption",
- "disable_showmount",
"nfs_v4_id_domain",
- "multi_ad_status",
+ "entra_id_config",
+ "ldap_configuration",
]
@overload
def __init__(
self,
*,
- location: Optional[str] = None,
- tags: Optional[dict[str, str]] = None,
- properties: Optional["_models.AccountProperties"] = None,
identity: Optional["_models.ManagedServiceIdentity"] = None,
+ tags: Optional[dict[str, str]] = None,
+ properties: Optional["_models.AccountPropertiesPatch"] = None,
) -> None: ...
@overload
@@ -4573,8 +7760,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
class PoolPatchProperties(_Model):
"""Patchable pool properties.
- :ivar size: Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value
- must be multiple of 1099511627776).
+ :ivar size: Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888
+ bytes) or in 1TiB chunks (value must be multiple of 1099511627776).
:vartype size: int
:ivar qos_type: The qos type of the pool. Known values are: "Auto" and "Manual".
:vartype qos_type: str or ~azure.mgmt.netapp.models.QosType
@@ -4586,8 +7773,8 @@ class PoolPatchProperties(_Model):
"""
size: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be
- multiple of 1099511627776)."""
+ """Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888 bytes) or in
+ 1TiB chunks (value must be multiple of 1099511627776)."""
qos_type: Optional[Union[str, "_models.QosType"]] = rest_field(
name="qosType", visibility=["read", "create", "update", "delete", "query"]
)
@@ -4628,8 +7815,8 @@ class PoolProperties(_Model):
:ivar pool_id: UUID v4 used to identify the Pool.
:vartype pool_id: str
- :ivar size: Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value
- must be multiple of 1099511627776). Required.
+ :ivar size: Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888
+ bytes) or in 1TiB chunks (value must be multiple of 1099511627776). Required.
:vartype size: int
:ivar service_level: The service level of the file system. Required. Known values are:
"Standard", "Premium", "Ultra", "StandardZRS", and "Flexible".
@@ -4656,8 +7843,8 @@ class PoolProperties(_Model):
pool_id: Optional[str] = rest_field(name="poolId", visibility=["read"])
"""UUID v4 used to identify the Pool."""
size: int = rest_field(visibility=["read", "create", "update", "delete", "query"])
- """Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be
- multiple of 1099511627776). Required."""
+ """Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888 bytes) or in
+ 1TiB chunks (value must be multiple of 1099511627776). Required."""
service_level: Union[str, "_models.ServiceLevel"] = rest_field(
name="serviceLevel", visibility=["read", "create", "update", "delete", "query"]
)
@@ -5826,6 +9013,116 @@ class RestoreStatus(_Model):
"""Displays the total bytes transferred."""
+class SecretPassword(_Model):
+ """Access password from Azure KeyVault Secrets to connect Active Directory.
+
+ :ivar key_vault_properties: Properties provided by KeyVault.
+ :vartype key_vault_properties: ~azure.mgmt.netapp.models.SecretPasswordKeyVaultProperties
+ :ivar identity: Identity used to authenticate to KeyVault. Applicable if keySource is
+ 'Microsoft.KeyVault'.
+ :vartype identity: ~azure.mgmt.netapp.models.SecretPasswordIdentity
+ """
+
+ key_vault_properties: Optional["_models.SecretPasswordKeyVaultProperties"] = rest_field(
+ name="keyVaultProperties", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Properties provided by KeyVault."""
+ identity: Optional["_models.SecretPasswordIdentity"] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Identity used to authenticate to KeyVault. Applicable if keySource is 'Microsoft.KeyVault'."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ key_vault_properties: Optional["_models.SecretPasswordKeyVaultProperties"] = None,
+ identity: Optional["_models.SecretPasswordIdentity"] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class SecretPasswordIdentity(_Model):
+ """Identity used to authenticate with key vault.
+
+ :ivar principal_id: The principal ID (object ID) of the identity used to authenticate with key
+ vault. Read-only.
+ :vartype principal_id: str
+ :ivar user_assigned_identity: The Azure resource identifier of the user assigned identity used
+ to authenticate with key vault. Applicable if identity.type has 'UserAssigned'. It should match
+ key of identity.userAssignedIdentities.
+ :vartype user_assigned_identity: str
+ """
+
+ principal_id: Optional[str] = rest_field(name="principalId", visibility=["read"])
+ """The principal ID (object ID) of the identity used to authenticate with key vault. Read-only."""
+ user_assigned_identity: Optional[str] = rest_field(
+ name="userAssignedIdentity", visibility=["read", "create", "update", "delete", "query"]
+ )
+ """The Azure resource identifier of the user assigned identity used to authenticate with key
+ vault. Applicable if identity.type has 'UserAssigned'. It should match key of
+ identity.userAssignedIdentities."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ user_assigned_identity: Optional[str] = None,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
+class SecretPasswordKeyVaultProperties(_Model):
+ """Properties of key vault to get the secrets for password.
+
+ :ivar key_vault_uri: The Uri of KeyVault. Required.
+ :vartype key_vault_uri: str
+ :ivar secret_name: The name of KeyVault password secret. Required.
+ :vartype secret_name: str
+ """
+
+ key_vault_uri: str = rest_field(name="keyVaultUri", visibility=["read", "create", "update", "delete", "query"])
+ """The Uri of KeyVault. Required."""
+ secret_name: str = rest_field(name="secretName", visibility=["read", "create", "update", "delete", "query"])
+ """The name of KeyVault password secret. Required."""
+
+ @overload
+ def __init__(
+ self,
+ *,
+ key_vault_uri: str,
+ secret_name: str,
+ ) -> None: ...
+
+ @overload
+ def __init__(self, mapping: Mapping[str, Any]) -> None:
+ """
+ :param mapping: raw JSON to initialize the model.
+ :type mapping: Mapping[str, Any]
+ """
+
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
+ super().__init__(*args, **kwargs)
+
+
class ServiceSpecification(_Model):
"""One property of operation, include metric specifications.
@@ -7048,6 +10345,7 @@ class Volume(TrackedResource):
"encryption_key_source",
"key_vault_private_endpoint_resource_id",
"ldap_enabled",
+ "ldap_server_type",
"cool_access",
"coolness_period",
"cool_access_retrieval_policy",
@@ -7071,8 +10369,10 @@ class Volume(TrackedResource):
"enable_subvolumes",
"provisioned_availability_zone",
"is_large_volume",
+ "large_volume_type",
"originating_resource_id",
"inherited_size_in_bytes",
+ "language",
"breakthrough_mode",
]
@@ -7537,6 +10837,7 @@ class VolumeGroupVolumeProperties(_Model):
"encryption_key_source",
"key_vault_private_endpoint_resource_id",
"ldap_enabled",
+ "ldap_server_type",
"cool_access",
"coolness_period",
"cool_access_retrieval_policy",
@@ -7560,8 +10861,10 @@ class VolumeGroupVolumeProperties(_Model):
"enable_subvolumes",
"provisioned_availability_zone",
"is_large_volume",
+ "large_volume_type",
"originating_resource_id",
"inherited_size_in_bytes",
+ "language",
"breakthrough_mode",
]
@@ -7703,7 +11006,8 @@ class VolumePatchProperties(_Model):
:ivar usage_threshold: 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 500TiB, and on an
- exceptional basis, from to 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB.
+ exceptional basis, from to 2400GiB to 2400TiB. For extra large volumes, valid values are in the
+ range 2400GiB to 7200TiB. Values expressed in bytes as multiples of 1 GiB.
:vartype usage_threshold: int
:ivar export_policy: Set of export policy rules.
:vartype export_policy: ~azure.mgmt.netapp.models.VolumePatchPropertiesExportPolicy
@@ -7775,7 +11079,8 @@ class VolumePatchProperties(_Model):
"""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 500TiB, and on an exceptional basis, from to
- 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB."""
+ 2400GiB to 2400TiB. For extra large volumes, valid values are in the range 2400GiB to 7200TiB.
+ Values expressed in bytes as multiples of 1 GiB."""
export_policy: Optional["_models.VolumePatchPropertiesExportPolicy"] = rest_field(
name="exportPolicy", visibility=["read", "create", "update", "delete", "query"]
)
@@ -7978,8 +11283,8 @@ class VolumeProperties(_Model):
:ivar usage_threshold: 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 500TiB, and on an
- exceptional basis, from to 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB.
- Required.
+ exceptional basis, from to 2400GiB to 2400TiB. For extra large volumes, valid values are in the
+ range 2400GiB to 7200TiB. Values expressed in bytes as multiples of 1 GiB. Required.
:vartype usage_threshold: int
:ivar export_policy: Set of export policy rules.
:vartype export_policy: ~azure.mgmt.netapp.models.VolumePropertiesExportPolicy
@@ -8071,6 +11376,9 @@ class VolumeProperties(_Model):
:vartype key_vault_private_endpoint_resource_id: str
:ivar ldap_enabled: Specifies whether LDAP is enabled or not for a given NFS volume.
:vartype ldap_enabled: bool
+ :ivar ldap_server_type: Specifies the type of LDAP server for a given NFS volume. Known values
+ are: "ActiveDirectory" and "OpenLDAP".
+ :vartype ldap_server_type: str or ~azure.mgmt.netapp.models.LdapServerType
:ivar cool_access: Specifies whether Cool Access(tiering) is enabled for the volume.
:vartype cool_access: bool
:ivar coolness_period: Specifies the number of days after which data that is not accessed by
@@ -8150,11 +11458,27 @@ class VolumeProperties(_Model):
:vartype provisioned_availability_zone: str
:ivar is_large_volume: Specifies whether volume is a Large Volume or Regular Volume.
:vartype is_large_volume: bool
+ :ivar large_volume_type: Specifies the type of the Large Volume. When set to 'LargeVolume', the
+ large volume is created with standard configuration. If it is set to
+ 'ExtraLargeVolume7Dot2PiB', the extra large volume is created with higher capacity limit 7.2PiB
+ with cool access enabled, delivering higher capacity limit with lower costs. Known values are:
+ "LargeVolume" and "PremExtraLargeVolume7Dot2PiB".
+ :vartype large_volume_type: str or ~azure.mgmt.netapp.models.LargeVolumeType
:ivar originating_resource_id: Id of the snapshot or backup that the volume is restored from.
:vartype originating_resource_id: str
:ivar inherited_size_in_bytes: Space shared by short term clone volume with parent volume in
bytes.
:vartype inherited_size_in_bytes: int
+ :ivar language: Language supported for volume. Known values are: "c.utf-8", "utf8mb4", "ar",
+ "ar.utf-8", "hr", "hr.utf-8", "cs", "cs.utf-8", "da", "da.utf-8", "nl", "nl.utf-8", "en",
+ "en.utf-8", "fi", "fi.utf-8", "fr", "fr.utf-8", "de", "de.utf-8", "he", "he.utf-8", "hu",
+ "hu.utf-8", "it", "it.utf-8", "ja", "ja.utf-8", "ja-v1", "ja-v1.utf-8", "ja-jp.pck",
+ "ja-jp.pck.utf-8", "ja-jp.932", "ja-jp.932.utf-8", "ja-jp.pck-v2", "ja-jp.pck-v2.utf-8", "ko",
+ "ko.utf-8", "no", "no.utf-8", "pl", "pl.utf-8", "pt", "pt.utf-8", "c", "ro", "ro.utf-8", "ru",
+ "ru.utf-8", "zh", "zh.utf-8", "zh.gbk", "zh.gbk.utf-8", "zh-tw.big5", "zh-tw.big5.utf-8",
+ "zh-tw", "zh-tw.utf-8", "sk", "sk.utf-8", "sl", "sl.utf-8", "es", "es.utf-8", "sv", "sv.utf-8",
+ "tr", "tr.utf-8", "en-us", and "en-us.utf-8".
+ :vartype language: str or ~azure.mgmt.netapp.models.VolumeLanguage
:ivar breakthrough_mode: Specifies whether the volume operates in Breakthrough Mode. Known
values are: "Enabled" and "Disabled".
:vartype breakthrough_mode: str or ~azure.mgmt.netapp.models.BreakthroughMode
@@ -8173,7 +11497,8 @@ class VolumeProperties(_Model):
"""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 500TiB, and on an exceptional basis, from to
- 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB. Required."""
+ 2400GiB to 2400TiB. For extra large volumes, valid values are in the range 2400GiB to 7200TiB.
+ Values expressed in bytes as multiples of 1 GiB. Required."""
export_policy: Optional["_models.VolumePropertiesExportPolicy"] = rest_field(
name="exportPolicy", visibility=["read", "create", "update", "delete", "query"]
)
@@ -8288,6 +11613,11 @@ class VolumeProperties(_Model):
volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'."""
ldap_enabled: Optional[bool] = rest_field(name="ldapEnabled", visibility=["read", "create"])
"""Specifies whether LDAP is enabled or not for a given NFS volume."""
+ ldap_server_type: Optional[Union[str, "_models.LdapServerType"]] = rest_field(
+ name="ldapServerType", visibility=["read", "create"]
+ )
+ """Specifies the type of LDAP server for a given NFS volume. Known values are: \"ActiveDirectory\"
+ and \"OpenLDAP\"."""
cool_access: Optional[bool] = rest_field(
name="coolAccess", visibility=["read", "create", "update", "delete", "query"]
)
@@ -8389,10 +11719,32 @@ class VolumeProperties(_Model):
zone where the volume resides."""
is_large_volume: Optional[bool] = rest_field(name="isLargeVolume", visibility=["read", "create"])
"""Specifies whether volume is a Large Volume or Regular Volume."""
+ large_volume_type: Optional[Union[str, "_models.LargeVolumeType"]] = rest_field(
+ name="largeVolumeType", visibility=["read", "create"]
+ )
+ """Specifies the type of the Large Volume. When set to 'LargeVolume', the large volume is created
+ with standard configuration. If it is set to 'ExtraLargeVolume7Dot2PiB', the extra large volume
+ is created with higher capacity limit 7.2PiB with cool access enabled, delivering higher
+ capacity limit with lower costs. Known values are: \"LargeVolume\" and
+ \"PremExtraLargeVolume7Dot2PiB\"."""
originating_resource_id: Optional[str] = rest_field(name="originatingResourceId", visibility=["read"])
"""Id of the snapshot or backup that the volume is restored from."""
inherited_size_in_bytes: Optional[int] = rest_field(name="inheritedSizeInBytes", visibility=["read"])
"""Space shared by short term clone volume with parent volume in bytes."""
+ language: Optional[Union[str, "_models.VolumeLanguage"]] = rest_field(
+ visibility=["read", "create", "update", "delete", "query"]
+ )
+ """Language supported for volume. Known values are: \"c.utf-8\", \"utf8mb4\", \"ar\",
+ \"ar.utf-8\", \"hr\", \"hr.utf-8\", \"cs\", \"cs.utf-8\", \"da\", \"da.utf-8\", \"nl\",
+ \"nl.utf-8\", \"en\", \"en.utf-8\", \"fi\", \"fi.utf-8\", \"fr\", \"fr.utf-8\", \"de\",
+ \"de.utf-8\", \"he\", \"he.utf-8\", \"hu\", \"hu.utf-8\", \"it\", \"it.utf-8\", \"ja\",
+ \"ja.utf-8\", \"ja-v1\", \"ja-v1.utf-8\", \"ja-jp.pck\", \"ja-jp.pck.utf-8\", \"ja-jp.932\",
+ \"ja-jp.932.utf-8\", \"ja-jp.pck-v2\", \"ja-jp.pck-v2.utf-8\", \"ko\", \"ko.utf-8\", \"no\",
+ \"no.utf-8\", \"pl\", \"pl.utf-8\", \"pt\", \"pt.utf-8\", \"c\", \"ro\", \"ro.utf-8\", \"ru\",
+ \"ru.utf-8\", \"zh\", \"zh.utf-8\", \"zh.gbk\", \"zh.gbk.utf-8\", \"zh-tw.big5\",
+ \"zh-tw.big5.utf-8\", \"zh-tw\", \"zh-tw.utf-8\", \"sk\", \"sk.utf-8\", \"sl\", \"sl.utf-8\",
+ \"es\", \"es.utf-8\", \"sv\", \"sv.utf-8\", \"tr\", \"tr.utf-8\", \"en-us\", and
+ \"en-us.utf-8\"."""
breakthrough_mode: Optional[Union[str, "_models.BreakthroughMode"]] = rest_field(
name="breakthroughMode", visibility=["read", "create"]
)
@@ -8429,6 +11781,7 @@ def __init__( # pylint: disable=too-many-locals
encryption_key_source: Optional[Union[str, "_models.EncryptionKeySource"]] = None,
key_vault_private_endpoint_resource_id: Optional[str] = None,
ldap_enabled: Optional[bool] = None,
+ ldap_server_type: Optional[Union[str, "_models.LdapServerType"]] = None,
cool_access: Optional[bool] = None,
coolness_period: Optional[int] = None,
cool_access_retrieval_policy: Optional[Union[str, "_models.CoolAccessRetrievalPolicy"]] = None,
@@ -8444,6 +11797,8 @@ def __init__( # pylint: disable=too-many-locals
placement_rules: Optional[list["_models.PlacementKeyValuePairs"]] = None,
enable_subvolumes: Optional[Union[str, "_models.EnableSubvolumes"]] = None,
is_large_volume: Optional[bool] = None,
+ large_volume_type: Optional[Union[str, "_models.LargeVolumeType"]] = None,
+ language: Optional[Union[str, "_models.VolumeLanguage"]] = None,
breakthrough_mode: Optional[Union[str, "_models.BreakthroughMode"]] = None,
) -> None: ...
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/operations/__init__.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/operations/__init__.py
index 4edfa8469e9a..dc8916780c55 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/operations/__init__.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/operations/__init__.py
@@ -25,6 +25,15 @@
from ._operations import BackupVaultsOperations # type: ignore
from ._operations import BucketsOperations # type: ignore
from ._operations import CachesOperations # type: ignore
+from ._operations import ElasticAccountsOperations # type: ignore
+from ._operations import ElasticCapacityPoolsOperations # type: ignore
+from ._operations import ElasticVolumesOperations # type: ignore
+from ._operations import ElasticSnapshotsOperations # type: ignore
+from ._operations import ElasticSnapshotPoliciesOperations # type: ignore
+from ._operations import ElasticBackupVaultsOperations # type: ignore
+from ._operations import ElasticBackupPoliciesOperations # type: ignore
+from ._operations import ElasticBackupsOperations # type: ignore
+from ._operations import ActiveDirectoryConfigsOperations # type: ignore
from ._operations import NetAppResourceQuotaLimitsOperations # type: ignore
from ._operations import NetAppResourceRegionInfosOperations # type: ignore
from ._operations import AccountsOperations # type: ignore
@@ -54,6 +63,15 @@
"BackupVaultsOperations",
"BucketsOperations",
"CachesOperations",
+ "ElasticAccountsOperations",
+ "ElasticCapacityPoolsOperations",
+ "ElasticVolumesOperations",
+ "ElasticSnapshotsOperations",
+ "ElasticSnapshotPoliciesOperations",
+ "ElasticBackupVaultsOperations",
+ "ElasticBackupPoliciesOperations",
+ "ElasticBackupsOperations",
+ "ActiveDirectoryConfigsOperations",
"NetAppResourceQuotaLimitsOperations",
"NetAppResourceRegionInfosOperations",
"AccountsOperations",
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/operations/_operations.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/operations/_operations.py
index deba723024ac..39bd3c8d5ffd 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/operations/_operations.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/operations/_operations.py
@@ -50,7 +50,7 @@ def build_operations_list_request(**kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -71,7 +71,7 @@ def build_net_app_resource_quota_limits_account_get_request( # pylint: disable=
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -100,7 +100,7 @@ def build_net_app_resource_quota_limits_account_list_request( # pylint: disable
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -128,7 +128,7 @@ def build_volume_groups_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -158,7 +158,7 @@ def build_volume_groups_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -188,7 +188,7 @@ def build_volume_groups_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/volumeGroups/{volumeGroupName}"
path_format_arguments = {
@@ -212,7 +212,7 @@ def build_volume_groups_list_by_net_app_account_request( # pylint: disable=name
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -245,7 +245,7 @@ def build_backups_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -281,7 +281,7 @@ def build_backups_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -319,7 +319,7 @@ def build_backups_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -355,7 +355,7 @@ def build_backups_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupVaults/{backupVaultName}/backups/{backupName}"
path_format_arguments = {
@@ -386,7 +386,7 @@ def build_backups_list_by_vault_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -417,7 +417,7 @@ def build_backups_get_latest_status_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -447,7 +447,7 @@ def build_backups_get_volume_latest_restore_status_request( # pylint: disable=n
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -477,7 +477,7 @@ def build_volumes_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -508,7 +508,7 @@ def build_volumes_create_or_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -541,7 +541,7 @@ def build_volumes_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -579,7 +579,7 @@ def build_volumes_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}"
path_format_arguments = {
@@ -606,7 +606,7 @@ def build_volumes_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -635,7 +635,7 @@ def build_volumes_populate_availability_zone_request( # pylint: disable=name-to
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -666,7 +666,7 @@ def build_volumes_revert_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/revert"
path_format_arguments = {
@@ -694,7 +694,7 @@ def build_volumes_reset_cifs_password_request( # pylint: disable=name-too-long
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/resetCifsPassword"
path_format_arguments = {
@@ -719,7 +719,7 @@ def build_volumes_split_clone_from_parent_request( # pylint: disable=name-too-l
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -750,7 +750,7 @@ def build_volumes_break_file_locks_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/breakFileLocks"
path_format_arguments = {
@@ -780,7 +780,7 @@ def build_volumes_list_get_group_id_list_for_ldap_user_request( # pylint: disab
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -813,7 +813,7 @@ def build_volumes_break_replication_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/breakReplication"
path_format_arguments = {
@@ -843,7 +843,7 @@ def build_volumes_reestablish_replication_request( # pylint: disable=name-too-l
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/reestablishReplication"
path_format_arguments = {
@@ -872,7 +872,7 @@ def build_volumes_replication_status_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -903,7 +903,7 @@ def build_volumes_list_replications_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -934,7 +934,7 @@ def build_volumes_resync_replication_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/resyncReplication"
path_format_arguments = {
@@ -958,7 +958,7 @@ def build_volumes_delete_replication_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/deleteReplication"
path_format_arguments = {
@@ -984,7 +984,7 @@ def build_volumes_authorize_replication_request( # pylint: disable=name-too-lon
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/authorizeReplication"
path_format_arguments = {
@@ -1012,7 +1012,7 @@ def build_volumes_re_initialize_replication_request( # pylint: disable=name-too
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/reinitializeReplication"
path_format_arguments = {
@@ -1038,7 +1038,7 @@ def build_volumes_peer_external_cluster_request( # pylint: disable=name-too-lon
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1070,7 +1070,7 @@ def build_volumes_authorize_external_replication_request( # pylint: disable=nam
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1099,7 +1099,7 @@ def build_volumes_finalize_external_replication_request( # pylint: disable=name
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/finalizeExternalReplication"
path_format_arguments = {
@@ -1123,7 +1123,7 @@ def build_volumes_perform_replication_transfer_request( # pylint: disable=name-
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/performReplicationTransfer"
path_format_arguments = {
@@ -1149,7 +1149,7 @@ def build_volumes_pool_change_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/poolChange"
path_format_arguments = {
@@ -1179,7 +1179,7 @@ def build_volumes_relocate_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/relocate"
path_format_arguments = {
@@ -1207,7 +1207,7 @@ def build_volumes_finalize_relocation_request( # pylint: disable=name-too-long
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/finalizeRelocation"
path_format_arguments = {
@@ -1231,7 +1231,7 @@ def build_volumes_revert_relocation_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/revertRelocation"
path_format_arguments = {
@@ -1257,7 +1257,7 @@ def build_volumes_list_quota_report_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1295,7 +1295,7 @@ def build_snapshots_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1333,7 +1333,7 @@ def build_snapshots_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1373,7 +1373,7 @@ def build_snapshots_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1411,7 +1411,7 @@ def build_snapshots_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/snapshots/{snapshotName}"
path_format_arguments = {
@@ -1437,7 +1437,7 @@ def build_snapshots_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1474,7 +1474,7 @@ def build_snapshots_restore_files_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/snapshots/{snapshotName}/restoreFiles"
path_format_arguments = {
@@ -1504,7 +1504,7 @@ def build_snapshot_policies_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1534,7 +1534,7 @@ def build_snapshot_policies_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1566,7 +1566,7 @@ def build_snapshot_policies_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1596,7 +1596,7 @@ def build_snapshot_policies_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/snapshotPolicies/{snapshotPolicyName}"
path_format_arguments = {
@@ -1620,7 +1620,7 @@ def build_snapshot_policies_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1648,7 +1648,7 @@ def build_snapshot_policies_list_volumes_request( # pylint: disable=name-too-lo
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1677,7 +1677,7 @@ def build_backup_policies_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1707,7 +1707,7 @@ def build_backup_policies_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1739,7 +1739,7 @@ def build_backup_policies_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1769,7 +1769,7 @@ def build_backup_policies_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupPolicies/{backupPolicyName}"
path_format_arguments = {
@@ -1793,7 +1793,7 @@ def build_backup_policies_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1827,7 +1827,7 @@ def build_volume_quota_rules_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1865,7 +1865,7 @@ def build_volume_quota_rules_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1905,7 +1905,7 @@ def build_volume_quota_rules_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -1943,7 +1943,7 @@ def build_volume_quota_rules_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/volumeQuotaRules/{volumeQuotaRuleName}"
path_format_arguments = {
@@ -1969,7 +1969,7 @@ def build_volume_quota_rules_list_by_volume_request( # pylint: disable=name-too
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2005,7 +2005,7 @@ def build_ransomware_reports_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2036,7 +2036,7 @@ def build_ransomware_reports_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2073,7 +2073,7 @@ def build_ransomware_reports_clear_suspects_request( # pylint: disable=name-too
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/ransomwareReports/{ransomwareReportName}/clearSuspects"
path_format_arguments = {
@@ -2103,7 +2103,7 @@ def build_backup_vaults_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2133,7 +2133,7 @@ def build_backup_vaults_create_or_update_request( # pylint: disable=name-too-lo
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2165,7 +2165,7 @@ def build_backup_vaults_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2195,7 +2195,7 @@ def build_backup_vaults_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupVaults/{backupVaultName}"
path_format_arguments = {
@@ -2219,7 +2219,7 @@ def build_backup_vaults_list_by_net_app_account_request( # pylint: disable=name
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2253,7 +2253,7 @@ def build_buckets_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2291,7 +2291,7 @@ def build_buckets_create_or_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2331,7 +2331,7 @@ def build_buckets_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2369,7 +2369,7 @@ def build_buckets_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/buckets/{bucketName}"
path_format_arguments = {
@@ -2395,7 +2395,7 @@ def build_buckets_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2432,7 +2432,7 @@ def build_buckets_generate_credentials_request( # pylint: disable=name-too-long
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2472,7 +2472,7 @@ def build_buckets_generate_akv_credentials_request( # pylint: disable=name-too-
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/buckets/{bucketName}/generateAkvCredentials"
path_format_arguments = {
@@ -2507,7 +2507,7 @@ def build_buckets_refresh_certificate_request( # pylint: disable=name-too-long
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/buckets/{bucketName}/refreshCertificate"
path_format_arguments = {
@@ -2533,7 +2533,7 @@ def build_caches_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2564,7 +2564,7 @@ def build_caches_create_or_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2597,7 +2597,7 @@ def build_caches_update_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2628,7 +2628,7 @@ def build_caches_delete_request(
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
_url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/caches/{cacheName}"
path_format_arguments = {
@@ -2653,7 +2653,7 @@ def build_caches_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2682,7 +2682,7 @@ def build_caches_list_peering_passphrases_request( # pylint: disable=name-too-l
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2713,7 +2713,7 @@ def build_caches_pool_change_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2745,7 +2745,7 @@ def build_caches_reset_smb_password_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -2769,23 +2769,21 @@ def build_caches_reset_smb_password_request(
return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_quota_limits_get_request( # pylint: disable=name-too-long
- location: str, quota_limit_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_accounts_get_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = (
- "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/quotaLimits/{quotaLimitName}"
- )
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
- "quotaLimitName": _SERIALIZER.url("quota_limit_name", quota_limit_name, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -2799,20 +2797,22 @@ def build_net_app_resource_quota_limits_get_request( # pylint: disable=name-too
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_quota_limits_list_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_accounts_create_or_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/quotaLimits"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -2821,25 +2821,29 @@ def build_net_app_resource_quota_limits_list_request( # pylint: disable=name-to
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_region_infos_get_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_accounts_update_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/regionInfos/default"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -2848,25 +2852,25 @@ def build_net_app_resource_region_infos_get_request( # pylint: disable=name-too
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_region_infos_list_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_accounts_delete_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
- accept = _headers.pop("Accept", "application/json")
-
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/regionInfos"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -2874,27 +2878,25 @@ def build_net_app_resource_region_infos_list_request( # pylint: disable=name-to
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- # Construct headers
- _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
-
- return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
-def build_accounts_get_request(
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_accounts_list_by_resource_group_request( # pylint: disable=name-too-long
+ resource_group_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}"
+ _url = (
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts"
+ )
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
- "accountName": _SERIALIZER.url("account_name", account_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -2908,22 +2910,19 @@ def build_accounts_get_request(
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_accounts_create_or_update_request(
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_accounts_list_by_subscription_request( # pylint: disable=name-too-long
+ subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}"
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/elasticAccounts"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
- "accountName": _SERIALIZER.url("account_name", account_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -2932,29 +2931,27 @@ def build_accounts_create_or_update_request(
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
- if content_type is not None:
- _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_accounts_update_request(
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_capacity_pools_get_request(
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -2963,49 +2960,28 @@ def build_accounts_update_request(
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
- if content_type is not None:
- _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_accounts_delete_request(
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_capacity_pools_create_or_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
- _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
-
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
- # Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}"
- path_format_arguments = {
- "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
- "accountName": _SERIALIZER.url("account_name", account_name, "str"),
- }
-
- _url: str = _url.format(**path_format_arguments) # type: ignore
-
- # Construct parameters
- _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
-
- return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
-
-
-def build_accounts_list_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = (
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts"
- )
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3014,24 +2990,30 @@ def build_accounts_list_request(resource_group_name: str, subscription_id: str,
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
-def build_accounts_list_by_subscription_request( # pylint: disable=name-too-long
- subscription_id: str, **kwargs: Any
+def build_elastic_capacity_pools_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/netAppAccounts"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3040,47 +3022,26 @@ def build_accounts_list_by_subscription_request( # pylint: disable=name-too-lon
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-
-
-def build_accounts_renew_credentials_request(
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
-) -> HttpRequest:
- _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
-
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
- # Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/renewCredentials"
- path_format_arguments = {
- "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
- "accountName": _SERIALIZER.url("account_name", account_name, "str"),
- }
-
- _url: str = _url.format(**path_format_arguments) # type: ignore
-
- # Construct parameters
- _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
-
- return HttpRequest(method="POST", url=_url, params=_params, **kwargs)
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
-def build_accounts_transition_to_cmk_request(
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_capacity_pools_delete_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/transitiontocmk"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3088,24 +3049,20 @@ def build_accounts_transition_to_cmk_request(
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- # Construct headers
- if content_type is not None:
- _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
-
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
-def build_accounts_get_change_key_vault_information_request( # pylint: disable=name-too-long
+def build_elastic_capacity_pools_list_by_elastic_account_request( # pylint: disable=name-too-long
resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/getKeyVaultStatus"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
@@ -3120,23 +3077,26 @@ def build_accounts_get_change_key_vault_information_request( # pylint: disable=
# Construct headers
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_accounts_change_key_vault_request(
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_capacity_pools_change_zone_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/changeKeyVault"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/changeZone"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3147,24 +3107,28 @@ def build_accounts_change_key_vault_request(
# Construct headers
if content_type is not None:
_headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
-def build_backups_under_account_migrate_backups_request( # pylint: disable=name-too-long
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_capacity_pools_check_volume_file_path_availability_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/migrateBackups"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/checkVolumeFilePathAvailability"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3175,26 +3139,28 @@ def build_backups_under_account_migrate_backups_request( # pylint: disable=name
# Construct headers
if content_type is not None:
_headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
-def build_pools_get_request(
- resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_volumes_get_request(
+ resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
"poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3208,23 +3174,24 @@ def build_pools_get_request(
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_pools_create_or_update_request(
- resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_volumes_create_or_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
"poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3240,23 +3207,24 @@ def build_pools_create_or_update_request(
return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
-def build_pools_update_request(
- resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_volumes_update_request(
+ resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
"poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3272,19 +3240,20 @@ def build_pools_update_request(
return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
-def build_pools_delete_request(
- resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_volumes_delete_request(
+ resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
"poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3295,21 +3264,22 @@ def build_pools_delete_request(
return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
-def build_pools_list_request(
- resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+def build_elastic_volumes_list_by_elastic_pool_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3323,51 +3293,18 @@ def build_pools_list_request(
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_backups_under_backup_vault_restore_files_request( # pylint: disable=name-too-long
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- backup_name: str,
- subscription_id: str,
- **kwargs: Any
-) -> HttpRequest:
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
-
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
- # Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupVaults/{backupVaultName}/backups/{backupName}/restoreFiles"
- path_format_arguments = {
- "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
- "accountName": _SERIALIZER.url("account_name", account_name, "str"),
- "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
- "backupName": _SERIALIZER.url("backup_name", backup_name, "str"),
- }
-
- _url: str = _url.format(**path_format_arguments) # type: ignore
-
- # Construct parameters
- _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
-
- # Construct headers
- if content_type is not None:
- _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
-
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
-
-
-def build_backups_under_volume_migrate_backups_request( # pylint: disable=name-too-long
+def build_elastic_volumes_revert_request(
resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/migrateBackups"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/revert"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
@@ -3384,34 +3321,35 @@ def build_backups_under_volume_migrate_backups_request( # pylint: disable=name-
# Construct headers
if content_type is not None:
_headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
-def build_subvolumes_get_request(
+def build_elastic_snapshots_get_request(
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- subvolume_name: str,
+ snapshot_name: str,
subscription_id: str,
**kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/elasticSnapshots/{snapshotName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
"poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
"volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
- "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ "snapshotName": _SERIALIZER.url("snapshot_name", snapshot_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3425,12 +3363,12 @@ def build_subvolumes_get_request(
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_subvolumes_create_request(
+def build_elastic_snapshots_create_or_update_request( # pylint: disable=name-too-long
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- subvolume_name: str,
+ snapshot_name: str,
subscription_id: str,
**kwargs: Any
) -> HttpRequest:
@@ -3438,18 +3376,18 @@ def build_subvolumes_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/elasticSnapshots/{snapshotName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
"poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
"volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
- "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ "snapshotName": _SERIALIZER.url("snapshot_name", snapshot_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3465,31 +3403,27 @@ def build_subvolumes_create_request(
return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
-def build_subvolumes_update_request(
+def build_elastic_snapshots_delete_request(
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- subvolume_name: str,
+ snapshot_name: str,
subscription_id: str,
**kwargs: Any
) -> HttpRequest:
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
- accept = _headers.pop("Accept", "application/json")
-
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/elasticSnapshots/{snapshotName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
"poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
"volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
- "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ "snapshotName": _SERIALIZER.url("snapshot_name", snapshot_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3497,35 +3431,26 @@ def build_subvolumes_update_request(
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- # Construct headers
- if content_type is not None:
- _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
- _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
-
- return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
-def build_subvolumes_delete_request(
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- subscription_id: str,
- **kwargs: Any
+def build_elastic_snapshots_list_by_elastic_volume_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/elasticSnapshots"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
"poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
"volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
- "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3533,26 +3458,28 @@ def build_subvolumes_delete_request(
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_subvolumes_list_by_volume_request(
- resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
+
+def build_elastic_snapshot_policies_get_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, snapshot_policy_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
- "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
- "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
+ "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3566,30 +3493,23 @@ def build_subvolumes_list_by_volume_request(
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_subvolumes_get_metadata_request(
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- subvolume_name: str,
- subscription_id: str,
- **kwargs: Any
+def build_elastic_snapshot_policies_create_or_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, snapshot_policy_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}/getMetadata"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
"resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
"accountName": _SERIALIZER.url("account_name", account_name, "str"),
- "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
- "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
- "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3598,26 +3518,30 @@ def build_subvolumes_get_metadata_request(
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_check_name_availability_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_snapshot_policies_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, snapshot_policy_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkNameAvailability"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3630,24 +3554,47 @@ def build_net_app_resource_check_name_availability_request( # pylint: disable=n
_headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_check_file_path_availability_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_snapshot_policies_delete_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, snapshot_policy_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
+
+
+def build_elastic_snapshot_policies_list_by_elastic_account_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkFilePathAvailability"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3656,28 +3603,27 @@ def build_net_app_resource_check_file_path_availability_request( # pylint: disa
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
- if content_type is not None:
- _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_check_quota_availability_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_snapshot_policies_list_elastic_volumes_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, snapshot_policy_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkQuotaAvailability"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}/elasticvolumes"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3686,27 +3632,27 @@ def build_net_app_resource_check_quota_availability_request( # pylint: disable=
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
# Construct headers
- if content_type is not None:
- _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_query_region_info_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_backup_vaults_get_request(
+ resource_group_name: str, account_name: str, backup_vault_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/regionInfo"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3720,21 +3666,23 @@ def build_net_app_resource_query_region_info_request( # pylint: disable=name-to
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_query_network_sibling_set_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_backup_vaults_create_or_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, backup_vault_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/queryNetworkSiblingSet"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3747,24 +3695,26 @@ def build_net_app_resource_query_network_sibling_set_request( # pylint: disable
_headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_update_network_sibling_set_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_backup_vaults_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, backup_vault_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/updateNetworkSiblingSet"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3777,23 +3727,47 @@ def build_net_app_resource_update_network_sibling_set_request( # pylint: disabl
_headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_usages_list_request( # pylint: disable=name-too-long
- location: str, subscription_id: str, **kwargs: Any
+def build_elastic_backup_vaults_delete_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, backup_vault_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
+
+
+def build_elastic_backup_vaults_list_by_elastic_account_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/usages"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3807,21 +3781,22 @@ def build_net_app_resource_usages_list_request( # pylint: disable=name-too-long
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-def build_net_app_resource_usages_get_request( # pylint: disable=name-too-long
- location: str, usage_type: str, subscription_id: str, **kwargs: Any
+def build_elastic_backup_policies_get_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, backup_policy_name: str, subscription_id: str, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
- _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/usages/{usageType}"
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies/{backupPolicyName}"
path_format_arguments = {
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
- "location": _SERIALIZER.url("location", location, "str"),
- "usageType": _SERIALIZER.url("usage_type", usage_type, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupPolicyName": _SERIALIZER.url("backup_policy_name", backup_policy_name, "str"),
}
_url: str = _url.format(**path_format_arguments) # type: ignore
@@ -3835,282 +3810,1829 @@ def build_net_app_resource_usages_get_request( # pylint: disable=name-too-long
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
-class Operations:
- """
- .. warning::
- **DO NOT** instantiate this class directly.
+def build_elastic_backup_policies_create_or_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, backup_policy_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- Instead, you should access the following operations through
- :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`operations` attribute.
- """
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
- def __init__(self, *args, **kwargs) -> None:
- input_args = list(args)
- self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
- self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
- self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
- self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies/{backupPolicyName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupPolicyName": _SERIALIZER.url("backup_policy_name", backup_policy_name, "str"),
+ }
- @distributed_trace
- def list(self, **kwargs: Any) -> ItemPaged["_models.Operation"]:
- """List the operations for the provider.
+ _url: str = _url.format(**path_format_arguments) # type: ignore
- :return: An iterator like instance of Operation
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Operation]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- cls: ClsType[List[_models.Operation]] = kwargs.pop("cls", None)
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
- def prepare_request(next_link=None):
- if not next_link:
- _request = build_operations_list_request(
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+def build_elastic_backup_policies_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, backup_policy_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- else:
- # make call to next link with the client's api-version
- _parsed_next_link = urllib.parse.urlparse(next_link)
- _next_request_params = case_insensitive_dict(
- {
- key: [urllib.parse.quote(v) for v in value]
- for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
- }
- )
- _next_request_params["api-version"] = self._config.api_version
- _request = HttpRequest(
- "GET",
- urllib.parse.urljoin(next_link, _parsed_next_link.path),
- headers=_headers,
- params=_next_request_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
- return _request
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies/{backupPolicyName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupPolicyName": _SERIALIZER.url("backup_policy_name", backup_policy_name, "str"),
+ }
- def extract_data(pipeline_response):
- deserialized = pipeline_response.http_response.json()
- list_of_elem = _deserialize(
- List[_models.Operation],
- deserialized.get("value", []),
- )
- if cls:
- list_of_elem = cls(list_of_elem) # type: ignore
- return deserialized.get("nextLink") or None, iter(list_of_elem)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
- def get_next(next_link=None):
- _request = prepare_request(next_link)
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- _stream = False
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
- response = pipeline_response.http_response
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- if response.status_code not in [200]:
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
- return pipeline_response
- return ItemPaged(get_next, extract_data)
+def build_elastic_backup_policies_delete_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, backup_policy_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies/{backupPolicyName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupPolicyName": _SERIALIZER.url("backup_policy_name", backup_policy_name, "str"),
+ }
-class NetAppResourceQuotaLimitsAccountOperations: # pylint: disable=name-too-long
- """
- .. warning::
- **DO NOT** instantiate this class directly.
+ _url: str = _url.format(**path_format_arguments) # type: ignore
- Instead, you should access the following operations through
- :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`net_app_resource_quota_limits_account` attribute.
- """
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- def __init__(self, *args, **kwargs) -> None:
- input_args = list(args)
- self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
- self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
- self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
- self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
- @distributed_trace
- @api_version_validation(
- method_added_on="2025-08-01",
- params_added_on={
- "2025-08-01": [
- "api_version",
- "subscription_id",
- "resource_group_name",
- "account_name",
- "quota_limit_name",
- "accept",
- ]
- },
- api_versions_list=[
- "2025-08-01",
- "2025-09-01",
- "2025-12-01",
- "2025-12-15-preview",
- "2026-01-01",
- "2026-01-15-preview",
- "2026-03-01",
- "2026-03-15-preview",
- "2026-04-01",
- "2026-04-15-preview",
- "2026-05-01",
- ],
- )
- def get(
- self, resource_group_name: str, account_name: str, quota_limit_name: str, **kwargs: Any
- ) -> _models.QuotaItem:
- """Get the default, current and usages account quota limit.
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param quota_limit_name: The name of the Quota Limit. Required.
- :type quota_limit_name: str
- :return: QuotaItem. The QuotaItem is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.QuotaItem
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
+def build_elastic_backup_policies_list_by_elastic_account_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
- cls: ClsType[_models.QuotaItem] = kwargs.pop("cls", None)
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
- _request = build_net_app_resource_quota_limits_account_get_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- quota_limit_name=quota_limit_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
- _decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- response = pipeline_response.http_response
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
- else:
- deserialized = _deserialize(_models.QuotaItem, response.json())
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
+def build_elastic_backups_get_request(
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- return deserialized # type: ignore
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
- @distributed_trace
- @api_version_validation(
- method_added_on="2025-08-01",
- params_added_on={
- "2025-08-01": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
- },
- api_versions_list=[
- "2025-08-01",
- "2025-09-01",
- "2025-12-01",
- "2025-12-15-preview",
- "2026-01-01",
- "2026-01-15-preview",
- "2026-03-01",
- "2026-03-15-preview",
- "2026-04-01",
- "2026-04-15-preview",
- "2026-05-01",
- ],
- )
- def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> ItemPaged["_models.QuotaItem"]:
- """Gets a list of quota limits for all quotas that are under account. Currently PoolsPerAccount is
- the only one.
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}/elasticBackups/{backupName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
+ "backupName": _SERIALIZER.url("backup_name", backup_name, "str"),
+ }
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :return: An iterator like instance of QuotaItem
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.QuotaItem]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
+ _url: str = _url.format(**path_format_arguments) # type: ignore
- cls: ClsType[List[_models.QuotaItem]] = kwargs.pop("cls", None)
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
- def prepare_request(next_link=None):
- if not next_link:
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_elastic_backups_create_or_update_request( # pylint: disable=name-too-long
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}/elasticBackups/{backupName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
+ "backupName": _SERIALIZER.url("backup_name", backup_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_elastic_backups_update_request(
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}/elasticBackups/{backupName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
+ "backupName": _SERIALIZER.url("backup_name", backup_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_elastic_backups_delete_request(
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}/elasticBackups/{backupName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
+ "backupName": _SERIALIZER.url("backup_name", backup_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
+
+
+def build_elastic_backups_list_by_vault_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, backup_vault_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}/elasticBackups"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_active_directory_configs_get_request( # pylint: disable=name-too-long
+ resource_group_name: str, active_directory_config_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/activeDirectoryConfigs/{activeDirectoryConfigName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "activeDirectoryConfigName": _SERIALIZER.url(
+ "active_directory_config_name", active_directory_config_name, "str"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_active_directory_configs_create_or_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, active_directory_config_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/activeDirectoryConfigs/{activeDirectoryConfigName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "activeDirectoryConfigName": _SERIALIZER.url(
+ "active_directory_config_name", active_directory_config_name, "str"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_active_directory_configs_update_request( # pylint: disable=name-too-long
+ resource_group_name: str, active_directory_config_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/activeDirectoryConfigs/{activeDirectoryConfigName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "activeDirectoryConfigName": _SERIALIZER.url(
+ "active_directory_config_name", active_directory_config_name, "str"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_active_directory_configs_delete_request( # pylint: disable=name-too-long
+ resource_group_name: str, active_directory_config_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/activeDirectoryConfigs/{activeDirectoryConfigName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "activeDirectoryConfigName": _SERIALIZER.url(
+ "active_directory_config_name", active_directory_config_name, "str"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
+
+
+def build_active_directory_configs_list_by_resource_group_request( # pylint: disable=name-too-long
+ resource_group_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/activeDirectoryConfigs"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_active_directory_configs_list_by_subscription_request( # pylint: disable=name-too-long
+ subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/activeDirectoryConfigs"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_quota_limits_get_request( # pylint: disable=name-too-long
+ location: str, quota_limit_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = (
+ "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/quotaLimits/{quotaLimitName}"
+ )
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ "quotaLimitName": _SERIALIZER.url("quota_limit_name", quota_limit_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_quota_limits_list_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/quotaLimits"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_region_infos_get_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/regionInfos/default"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_region_infos_list_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/regionInfos"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_get_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_create_or_update_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_update_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_delete_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
+
+
+def build_accounts_list_request(resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = (
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts"
+ )
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_list_by_subscription_request( # pylint: disable=name-too-long
+ subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/netAppAccounts"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_renew_credentials_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/renewCredentials"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, **kwargs)
+
+
+def build_accounts_transition_to_cmk_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/transitiontocmk"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_get_change_key_vault_information_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/getKeyVaultStatus"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_change_key_vault_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/changeKeyVault"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_accounts_refresh_ldap_bind_password_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/refreshLdapBindPassword"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, **kwargs)
+
+
+def build_backups_under_account_migrate_backups_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/migrateBackups"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_pools_get_request(
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_pools_create_or_update_request(
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_pools_update_request(
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_pools_delete_request(
+ resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
+
+
+def build_pools_list_request(
+ resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_backups_under_backup_vault_restore_files_request( # pylint: disable=name-too-long
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/backupVaults/{backupVaultName}/backups/{backupName}/restoreFiles"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_name, "str"),
+ "backupName": _SERIALIZER.url("backup_name", backup_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_backups_under_volume_migrate_backups_request( # pylint: disable=name-too-long
+ resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/migrateBackups"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_subvolumes_get_request(
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
+ "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_subvolumes_create_request(
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
+ "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_subvolumes_update_request(
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
+ "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_subvolumes_delete_request(
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
+ "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs)
+
+
+def build_subvolumes_list_by_volume_request(
+ resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_subvolumes_get_metadata_request(
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ subvolume_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/subvolumes/{subvolumeName}/getMetadata"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"),
+ "accountName": _SERIALIZER.url("account_name", account_name, "str"),
+ "poolName": _SERIALIZER.url("pool_name", pool_name, "str"),
+ "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"),
+ "subvolumeName": _SERIALIZER.url("subvolume_name", subvolume_name, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_check_name_availability_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkNameAvailability"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_check_file_path_availability_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkFilePathAvailability"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_check_quota_availability_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkQuotaAvailability"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_query_region_info_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/regionInfo"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_query_network_sibling_set_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/queryNetworkSiblingSet"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_update_network_sibling_set_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/updateNetworkSiblingSet"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_usages_list_request( # pylint: disable=name-too-long
+ location: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/usages"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_net_app_resource_usages_get_request( # pylint: disable=name-too-long
+ location: str, usage_type: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-15-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/usages/{usageType}"
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"),
+ "location": _SERIALIZER.url("location", location, "str"),
+ "usageType": _SERIALIZER.url("usage_type", usage_type, "str"),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class Operations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`operations` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list(self, **kwargs: Any) -> ItemPaged["_models.Operation"]:
+ """List the operations for the provider.
+
+ :return: An iterator like instance of Operation
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Operation]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.Operation]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_operations_list_request(
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.Operation],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+
+class NetAppResourceQuotaLimitsAccountOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`net_app_resource_quota_limits_account` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-08-01",
+ params_added_on={
+ "2025-08-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "quota_limit_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-08-01",
+ "2025-09-01",
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(
+ self, resource_group_name: str, account_name: str, quota_limit_name: str, **kwargs: Any
+ ) -> _models.QuotaItem:
+ """Get the default, current and usages account quota limit.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param quota_limit_name: The name of the Quota Limit. Required.
+ :type quota_limit_name: str
+ :return: QuotaItem. The QuotaItem is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.QuotaItem
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.QuotaItem] = kwargs.pop("cls", None)
+
+ _request = build_net_app_resource_quota_limits_account_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ quota_limit_name=quota_limit_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.QuotaItem, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-08-01",
+ params_added_on={
+ "2025-08-01": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-08-01",
+ "2025-09-01",
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> ItemPaged["_models.QuotaItem"]:
+ """Gets a list of quota limits for all quotas that are under account. Currently PoolsPerAccount is
+ the only one.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :return: An iterator like instance of QuotaItem
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.QuotaItem]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.QuotaItem]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
_request = build_net_app_resource_quota_limits_account_list_request(
resource_group_name=resource_group_name,
@@ -4127,97 +5649,6491 @@ def prepare_request(next_link=None):
}
_request.url = self._client.format_url(_request.url, **path_format_arguments)
- else:
- # make call to next link with the client's api-version
- _parsed_next_link = urllib.parse.urlparse(next_link)
- _next_request_params = case_insensitive_dict(
- {
- key: [urllib.parse.quote(v) for v in value]
- for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
- }
- )
- _next_request_params["api-version"] = self._config.api_version
- _request = HttpRequest(
- "GET",
- urllib.parse.urljoin(next_link, _parsed_next_link.path),
- headers=_headers,
- params=_next_request_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.QuotaItem],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+
+class VolumeGroupsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`volume_groups` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def get(
+ self, resource_group_name: str, account_name: str, volume_group_name: str, **kwargs: Any
+ ) -> _models.VolumeGroupDetails:
+ """Get details of the specified volume group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param volume_group_name: The name of the volumeGroup. Required.
+ :type volume_group_name: str
+ :return: VolumeGroupDetails. The VolumeGroupDetails is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.VolumeGroupDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.VolumeGroupDetails] = kwargs.pop("cls", None)
+
+ _request = build_volume_groups_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ volume_group_name=volume_group_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.VolumeGroupDetails, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _create_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: Union[_models.VolumeGroupDetails, _types.VolumeGroupDetails, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volume_groups_create_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ volume_group_name=volume_group_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: _models.VolumeGroupDetails,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.VolumeGroupDetails]:
+ """Create a volume group along with specified volumes.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param volume_group_name: The name of the volumeGroup. Required.
+ :type volume_group_name: str
+ :param body: Volume Group object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumeGroupDetails
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns VolumeGroupDetails. The VolumeGroupDetails is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeGroupDetails]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: _types.VolumeGroupDetails,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.VolumeGroupDetails]:
+ """Create a volume group along with specified volumes.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param volume_group_name: The name of the volumeGroup. Required.
+ :type volume_group_name: str
+ :param body: Volume Group object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.VolumeGroupDetails
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns VolumeGroupDetails. The VolumeGroupDetails is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeGroupDetails]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.VolumeGroupDetails]:
+ """Create a volume group along with specified volumes.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param volume_group_name: The name of the volumeGroup. Required.
+ :type volume_group_name: str
+ :param body: Volume Group object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns VolumeGroupDetails. The VolumeGroupDetails is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeGroupDetails]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ volume_group_name: str,
+ body: Union[_models.VolumeGroupDetails, _types.VolumeGroupDetails, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.VolumeGroupDetails]:
+ """Create a volume group along with specified volumes.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param volume_group_name: The name of the volumeGroup. Required.
+ :type volume_group_name: str
+ :param body: Volume Group object supplied in the body of the operation. Is either a
+ VolumeGroupDetails type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumeGroupDetails or
+ ~azure.mgmt.netapp.types.VolumeGroupDetails or IO[bytes]
+ :return: An instance of LROPoller that returns VolumeGroupDetails. The VolumeGroupDetails is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeGroupDetails]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.VolumeGroupDetails] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ volume_group_name=volume_group_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response_headers = {}
+ response = pipeline_response.http_response
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = _deserialize(_models.VolumeGroupDetails, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.VolumeGroupDetails].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.VolumeGroupDetails](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _delete_initial(
+ self, resource_group_name: str, account_name: str, volume_group_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volume_groups_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ volume_group_name=volume_group_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_delete(
+ self, resource_group_name: str, account_name: str, volume_group_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Delete the specified volume group only if there are no volumes under volume group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param volume_group_name: The name of the volumeGroup. Required.
+ :type volume_group_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ volume_group_name=volume_group_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ def list_by_net_app_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.VolumeGroup"]:
+ """List all volume groups for given account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :return: An iterator like instance of VolumeGroup
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.VolumeGroup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.VolumeGroup]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_volume_groups_list_by_net_app_account_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.VolumeGroup],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+
+class BackupsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`backups` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def get(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ ) -> _models.Backup:
+ """Get the specified Backup under Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :return: Backup. The Backup is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.Backup
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.Backup] = kwargs.pop("cls", None)
+
+ _request = build_backups_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.Backup, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _create_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.Backup, _types.Backup, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_backups_create_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _models.Backup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Backup]:
+ """Create a backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :param body: Backup object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.Backup
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _types.Backup,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Backup]:
+ """Create a backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :param body: Backup object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.Backup
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Backup]:
+ """Create a backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :param body: Backup object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.Backup, _types.Backup, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.Backup]:
+ """Create a backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :param body: Backup object supplied in the body of the operation. Is either a Backup type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.Backup or ~azure.mgmt.netapp.types.Backup or IO[bytes]
+ :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.Backup] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Backup, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.Backup].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.Backup](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Optional[Union[_models.BackupPatch, _types.BackupPatch, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json" if body else None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ if body is not None:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ else:
+ _content = None
+
+ _request = build_backups_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Optional[_models.BackupPatch] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Backup]:
+ """Patch a Backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :param body: Backup object supplied in the body of the operation. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.BackupPatch
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Optional[_types.BackupPatch] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Backup]:
+ """Patch a Backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :param body: Backup object supplied in the body of the operation. Default value is None.
+ :type body: ~azure.mgmt.netapp.types.BackupPatch
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Backup]:
+ """Patch a Backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :param body: Backup object supplied in the body of the operation. Default value is None.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ backup_name: str,
+ body: Optional[Union[_models.BackupPatch, _types.BackupPatch, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> LROPoller[_models.Backup]:
+ """Patch a Backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :param body: Backup object supplied in the body of the operation. Is either a BackupPatch type
+ or a IO[bytes] type. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.BackupPatch or ~azure.mgmt.netapp.types.BackupPatch or
+ IO[bytes]
+ :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[_models.Backup] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Backup, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.Backup].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.Backup](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _delete_initial(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_backups_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_delete(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Delete a Backup under the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the backup. Required.
+ :type backup_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ def list_by_vault(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ *,
+ filter: Optional[str] = None,
+ **kwargs: Any
+ ) -> ItemPaged["_models.Backup"]:
+ """List all backups Under a Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :keyword filter: An option to specify the VolumeResourceId. If present, then only returns the
+ backups under the specified volume. Default value is None.
+ :paramtype filter: str
+ :return: An iterator like instance of Backup
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Backup]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.Backup]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_backups_list_by_vault_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ subscription_id=self._config.subscription_id,
+ filter=filter,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.Backup],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ def get_latest_status(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> _models.BackupStatus:
+ """Get the latest status of the backup for a volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: BackupStatus. The BackupStatus is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.BackupStatus
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.BackupStatus] = kwargs.pop("cls", None)
+
+ _request = build_backups_get_latest_status_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.BackupStatus, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def get_volume_latest_restore_status(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> _models.RestoreStatus:
+ """Get the latest status of the restore for a volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: RestoreStatus. The RestoreStatus is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.RestoreStatus
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.RestoreStatus] = kwargs.pop("cls", None)
+
+ _request = build_backups_get_volume_latest_restore_status_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.RestoreStatus, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+
+class VolumesOperations: # pylint: disable=too-many-public-methods
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`volumes` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def get(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> _models.Volume:
+ """Get the details of the specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: Volume. The Volume is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.Volume
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
+
+ _request = build_volumes_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.Volume, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.Volume, _types.Volume, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volumes_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.Volume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Volume object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.Volume
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.Volume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Volume object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.Volume
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Volume object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.Volume, _types.Volume, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Volume object supplied in the body of the operation. Is either a Volume type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.Volume or ~azure.mgmt.netapp.types.Volume or IO[bytes]
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Volume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.Volume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.Volume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.VolumePatch, _types.VolumePatch, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volumes_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.VolumePatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Patch the specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Volume object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumePatch
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.VolumePatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Patch the specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Volume object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.VolumePatch
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Patch the specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Volume object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.VolumePatch, _types.VolumePatch, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Patch the specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Volume object supplied in the body of the operation. Is either a VolumePatch type
+ or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumePatch or ~azure.mgmt.netapp.types.VolumePatch or
+ IO[bytes]
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Volume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.Volume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.Volume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _delete_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ *,
+ force_delete: Optional[bool] = None,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ force_delete=force_delete,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ *,
+ force_delete: Optional[bool] = None,
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Delete the specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :keyword force_delete: An option to force delete the volume. Will cleanup resources connected
+ to the particular volume. Default value is None.
+ :paramtype force_delete: bool
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ force_delete=force_delete,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ def list(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.Volume"]:
+ """List all volumes within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :return: An iterator like instance of Volume
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.Volume]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_volumes_list_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.Volume],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ def _populate_availability_zone_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_populate_availability_zone_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_populate_availability_zone(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """This operation will populate availability zone information for a volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._populate_availability_zone_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Volume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.Volume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.Volume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _revert_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.VolumeRevert, _types.VolumeRevert, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volumes_revert_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.VolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Revert a volume to the snapshot specified in the body.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Object for snapshot to revert supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumeRevert
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.VolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Revert a volume to the snapshot specified in the body.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Object for snapshot to revert supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.VolumeRevert
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Revert a volume to the snapshot specified in the body.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Object for snapshot to revert supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.VolumeRevert, _types.VolumeRevert, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Revert a volume to the snapshot specified in the body.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Object for snapshot to revert supplied in the body of the operation. Is either a
+ VolumeRevert type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumeRevert or ~azure.mgmt.netapp.types.VolumeRevert or
+ IO[bytes]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._revert_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _reset_cifs_password_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_reset_cifs_password_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_reset_cifs_password(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Reset cifs password from volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._reset_cifs_password_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _split_clone_from_parent_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_split_clone_from_parent_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_split_clone_from_parent(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[_models.Volume]:
+ """Split operation to convert clone volume to an independent volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns Volume. The Volume is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._split_clone_from_parent_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Volume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.Volume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.Volume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _break_file_locks_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.BreakFileLocksRequest, _types.BreakFileLocksRequest, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json" if body else None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ if body is not None:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ else:
+ _content = None
+
+ _request = build_volumes_break_file_locks_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_break_file_locks(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_models.BreakFileLocksRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Break all the file locks on a volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Optional body to provide the ability to clear file locks with selected options.
+ Default value is None.
+ :type body: ~azure.mgmt.netapp.models.BreakFileLocksRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_break_file_locks(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_types.BreakFileLocksRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Break all the file locks on a volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Optional body to provide the ability to clear file locks with selected options.
+ Default value is None.
+ :type body: ~azure.mgmt.netapp.types.BreakFileLocksRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_break_file_locks(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Break all the file locks on a volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Optional body to provide the ability to clear file locks with selected options.
+ Default value is None.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_break_file_locks(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.BreakFileLocksRequest, _types.BreakFileLocksRequest, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Break all the file locks on a volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Optional body to provide the ability to clear file locks with selected options. Is
+ either a BreakFileLocksRequest type or a IO[bytes] type. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.BreakFileLocksRequest or
+ ~azure.mgmt.netapp.types.BreakFileLocksRequest or IO[bytes]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._break_file_locks_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-08-01",
+ params_added_on={
+ "2025-08-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-08-01",
+ "2025-09-01",
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-long
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.GetGroupIdListForLDAPUserRequest, _types.GetGroupIdListForLDAPUserRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volumes_list_get_group_id_list_for_ldap_user_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.GetGroupIdListForLDAPUserRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.GetGroupIdListForLDAPUserResponse]:
+ """Returns the list of group Ids for a specific LDAP User.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Returns group Id list for a specific LDAP user. Required.
+ :type body: ~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns GetGroupIdListForLDAPUserResponse. The
+ GetGroupIdListForLDAPUserResponse is compatible with MutableMapping
+ :rtype:
+ ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.GetGroupIdListForLDAPUserRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.GetGroupIdListForLDAPUserResponse]:
+ """Returns the list of group Ids for a specific LDAP User.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Returns group Id list for a specific LDAP user. Required.
+ :type body: ~azure.mgmt.netapp.types.GetGroupIdListForLDAPUserRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns GetGroupIdListForLDAPUserResponse. The
+ GetGroupIdListForLDAPUserResponse is compatible with MutableMapping
+ :rtype:
+ ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.GetGroupIdListForLDAPUserResponse]:
+ """Returns the list of group Ids for a specific LDAP User.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Returns group Id list for a specific LDAP user. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns GetGroupIdListForLDAPUserResponse. The
+ GetGroupIdListForLDAPUserResponse is compatible with MutableMapping
+ :rtype:
+ ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-08-01",
+ params_added_on={
+ "2025-08-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-08-01",
+ "2025-09-01",
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.GetGroupIdListForLDAPUserRequest, _types.GetGroupIdListForLDAPUserRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.GetGroupIdListForLDAPUserResponse]:
+ """Returns the list of group Ids for a specific LDAP User.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Returns group Id list for a specific LDAP user. Is either a
+ GetGroupIdListForLDAPUserRequest type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserRequest or
+ ~azure.mgmt.netapp.types.GetGroupIdListForLDAPUserRequest or IO[bytes]
+ :return: An instance of LROPoller that returns GetGroupIdListForLDAPUserResponse. The
+ GetGroupIdListForLDAPUserResponse is compatible with MutableMapping
+ :rtype:
+ ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.GetGroupIdListForLDAPUserResponse] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._list_get_group_id_list_for_ldap_user_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.GetGroupIdListForLDAPUserResponse, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.GetGroupIdListForLDAPUserResponse].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.GetGroupIdListForLDAPUserResponse](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _break_replication_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.BreakReplicationRequest, _types.BreakReplicationRequest, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json" if body else None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ if body is not None:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ else:
+ _content = None
+
+ _request = build_volumes_break_replication_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_break_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_models.BreakReplicationRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Break the replication connection on the destination volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Optional body to force break the replication. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.BreakReplicationRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_break_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_types.BreakReplicationRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Break the replication connection on the destination volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Optional body to force break the replication. Default value is None.
+ :type body: ~azure.mgmt.netapp.types.BreakReplicationRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_break_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Break the replication connection on the destination volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Optional body to force break the replication. Default value is None.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_break_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.BreakReplicationRequest, _types.BreakReplicationRequest, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Break the replication connection on the destination volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Optional body to force break the replication. Is either a BreakReplicationRequest
+ type or a IO[bytes] type. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.BreakReplicationRequest or
+ ~azure.mgmt.netapp.types.BreakReplicationRequest or IO[bytes]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._break_replication_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _reestablish_replication_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ReestablishReplicationRequest, _types.ReestablishReplicationRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volumes_reestablish_replication_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_reestablish_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.ReestablishReplicationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or
+ policy-based snapshots.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: body for the id of the source volume. Required.
+ :type body: ~azure.mgmt.netapp.models.ReestablishReplicationRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_reestablish_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.ReestablishReplicationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or
+ policy-based snapshots.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: body for the id of the source volume. Required.
+ :type body: ~azure.mgmt.netapp.types.ReestablishReplicationRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_reestablish_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or
+ policy-based snapshots.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: body for the id of the source volume. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_reestablish_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ReestablishReplicationRequest, _types.ReestablishReplicationRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or
+ policy-based snapshots.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: body for the id of the source volume. Is either a ReestablishReplicationRequest
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ReestablishReplicationRequest or
+ ~azure.mgmt.netapp.types.ReestablishReplicationRequest or IO[bytes]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._reestablish_replication_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ def replication_status(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> _models.ReplicationStatus:
+ """Get the status of the replication.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: ReplicationStatus. The ReplicationStatus is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ReplicationStatus
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ReplicationStatus] = kwargs.pop("cls", None)
+
+ _request = build_volumes_replication_status_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ReplicationStatus, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def list_replications(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_models.ListReplicationsRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> ItemPaged["_models.Replication"]:
+ """List all replications for a specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.ListReplicationsRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An iterator like instance of Replication
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def list_replications(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_types.ListReplicationsRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> ItemPaged["_models.Replication"]:
+ """List all replications for a specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Default value is None.
+ :type body: ~azure.mgmt.netapp.types.ListReplicationsRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An iterator like instance of Replication
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def list_replications(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> ItemPaged["_models.Replication"]:
+ """List all replications for a specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Default value is None.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An iterator like instance of Replication
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-08-01",
+ params_added_on={
+ "2025-08-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-08-01",
+ "2025-09-01",
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_replications(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.ListReplicationsRequest, _types.ListReplicationsRequest, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> ItemPaged["_models.Replication"]:
+ """List all replications for a specified volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Is either a ListReplicationsRequest type or a
+ IO[bytes] type. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.ListReplicationsRequest or
+ ~azure.mgmt.netapp.types.ListReplicationsRequest or IO[bytes]
+ :return: An iterator like instance of Replication
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[List[_models.Replication]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+ content_type = content_type or "application/json" if body else None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ if body is not None:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ else:
+ _content = None
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_volumes_list_replications_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.Replication],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ def _resync_replication_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_resync_replication_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_resync_replication(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """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 resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._resync_replication_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _delete_replication_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_delete_replication_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_delete_replication(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Delete the replication connection on the destination volume, and send release to the source
+ replication.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._delete_replication_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _authorize_replication_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.AuthorizeRequest, _types.AuthorizeRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volumes_authorize_replication_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_authorize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.AuthorizeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Authorize the replication connection on the source volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Authorize request object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.AuthorizeRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_authorize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.AuthorizeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Authorize the replication connection on the source volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Authorize request object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.AuthorizeRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_authorize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Authorize the replication connection on the source volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Authorize request object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_authorize_replication(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.AuthorizeRequest, _types.AuthorizeRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Authorize the replication connection on the source volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Authorize request object supplied in the body of the operation. Is either a
+ AuthorizeRequest type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.AuthorizeRequest or
+ ~azure.mgmt.netapp.types.AuthorizeRequest or IO[bytes]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._authorize_replication_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _re_initialize_replication_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_re_initialize_replication_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_re_initialize_replication(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Re-Initializes the replication connection on the destination volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._re_initialize_replication_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _peer_external_cluster_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[
+ _models.PeerClusterForVolumeMigrationRequest, _types.PeerClusterForVolumeMigrationRequest, IO[bytes]
+ ],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volumes_peer_external_cluster_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_peer_external_cluster(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.PeerClusterForVolumeMigrationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ClusterPeerCommandResponse]:
+ """Starts peering the external cluster for this migration volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Cluster peer request object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.PeerClusterForVolumeMigrationRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ClusterPeerCommandResponse. The
+ ClusterPeerCommandResponse is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ClusterPeerCommandResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_peer_external_cluster(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.PeerClusterForVolumeMigrationRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ClusterPeerCommandResponse]:
+ """Starts peering the external cluster for this migration volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Cluster peer request object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.PeerClusterForVolumeMigrationRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ClusterPeerCommandResponse. The
+ ClusterPeerCommandResponse is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ClusterPeerCommandResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_peer_external_cluster(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ClusterPeerCommandResponse]:
+ """Starts peering the external cluster for this migration volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Cluster peer request object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ClusterPeerCommandResponse. The
+ ClusterPeerCommandResponse is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ClusterPeerCommandResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_peer_external_cluster(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[
+ _models.PeerClusterForVolumeMigrationRequest, _types.PeerClusterForVolumeMigrationRequest, IO[bytes]
+ ],
+ **kwargs: Any
+ ) -> LROPoller[_models.ClusterPeerCommandResponse]:
+ """Starts peering the external cluster for this migration volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Cluster peer request object supplied in the body of the operation. Is either a
+ PeerClusterForVolumeMigrationRequest type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.PeerClusterForVolumeMigrationRequest or
+ ~azure.mgmt.netapp.types.PeerClusterForVolumeMigrationRequest or IO[bytes]
+ :return: An instance of LROPoller that returns ClusterPeerCommandResponse. The
+ ClusterPeerCommandResponse is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ClusterPeerCommandResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ClusterPeerCommandResponse] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._peer_external_cluster_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response_headers = {}
+ response = pipeline_response.http_response
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = _deserialize(_models.ClusterPeerCommandResponse, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ClusterPeerCommandResponse].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ClusterPeerCommandResponse](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _authorize_external_replication_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_authorize_external_replication_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_authorize_external_replication(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[_models.SvmPeerCommandResponse]:
+ """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 resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns SvmPeerCommandResponse. The
+ SvmPeerCommandResponse is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SvmPeerCommandResponse]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.SvmPeerCommandResponse] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._authorize_external_replication_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response_headers = {}
+ response = pipeline_response.http_response
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = _deserialize(_models.SvmPeerCommandResponse, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.SvmPeerCommandResponse].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.SvmPeerCommandResponse](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _finalize_external_replication_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_finalize_external_replication_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_finalize_external_replication(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Finalizes the migration of an external volume by releasing the replication and breaking the
+ external cluster peering if no other migration is active.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._finalize_external_replication_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _perform_replication_transfer_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_volumes_perform_replication_transfer_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_perform_replication_transfer(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Performs an adhoc replication transfer on a volume with volumeType Migration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._perform_replication_transfer_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _pool_change_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_volumes_pool_change_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.PoolChangeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Moves volume to another pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Move volume to the pool supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.PoolChangeRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.PoolChangeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Moves volume to another pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Move volume to the pool supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.PoolChangeRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Moves volume to another pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Move volume to the pool supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Moves volume to another pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Move volume to the pool supplied in the body of the operation. Is either a
+ PoolChangeRequest type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.PoolChangeRequest or
+ ~azure.mgmt.netapp.types.PoolChangeRequest or IO[bytes]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._pool_change_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _relocate_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.RelocateVolumeRequest, _types.RelocateVolumeRequest, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json" if body else None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ if body is not None:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ else:
+ _content = None
+
+ _request = build_volumes_relocate_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
- return _request
+ response = pipeline_response.http_response
- def extract_data(pipeline_response):
- deserialized = pipeline_response.http_response.json()
- list_of_elem = _deserialize(
- List[_models.QuotaItem],
- deserialized.get("value", []),
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
)
- if cls:
- list_of_elem = cls(list_of_elem) # type: ignore
- return deserialized.get("nextLink") or None, iter(list_of_elem)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- def get_next(next_link=None):
- _request = prepare_request(next_link)
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
- _stream = False
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
- response = pipeline_response.http_response
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
- if response.status_code not in [200]:
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
- return pipeline_response
+ return deserialized # type: ignore
- return ItemPaged(get_next, extract_data)
+ @overload
+ def begin_relocate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_models.RelocateVolumeRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Relocates volume to a new stamp.
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Relocate volume request. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.RelocateVolumeRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
-class VolumeGroupsOperations:
- """
- .. warning::
- **DO NOT** instantiate this class directly.
+ @overload
+ def begin_relocate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_types.RelocateVolumeRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Relocates volume to a new stamp.
- Instead, you should access the following operations through
- :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`volume_groups` attribute.
- """
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Relocate volume request. Default value is None.
+ :type body: ~azure.mgmt.netapp.types.RelocateVolumeRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
- def __init__(self, *args, **kwargs) -> None:
- input_args = list(args)
- self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
- self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
- self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
- self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+ @overload
+ def begin_relocate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Relocates volume to a new stamp.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Relocate volume request. Default value is None.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
@distributed_trace
- def get(
- self, resource_group_name: str, account_name: str, volume_group_name: str, **kwargs: Any
- ) -> _models.VolumeGroupDetails:
- """Get details of the specified volume group.
+ def begin_relocate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.RelocateVolumeRequest, _types.RelocateVolumeRequest, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Relocates volume to a new stamp.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: Relocate volume request. Is either a RelocateVolumeRequest type or a IO[bytes]
+ type. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.RelocateVolumeRequest or
+ ~azure.mgmt.netapp.types.RelocateVolumeRequest or IO[bytes]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._relocate_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param volume_group_name: The name of the volumeGroup. Required.
- :type volume_group_name: str
- :return: VolumeGroupDetails. The VolumeGroupDetails is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.VolumeGroupDetails
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _finalize_relocation_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -4229,12 +12145,13 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.VolumeGroupDetails] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volume_groups_get_request(
+ _request = build_volumes_finalize_relocation_request(
resource_group_name=resource_group_name,
account_name=account_name,
- volume_group_name=volume_group_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -4246,19 +12163,18 @@ def get(
_request.url = self._client.format_url(_request.url, **path_format_arguments)
_decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
@@ -4266,23 +12182,85 @@ def get(
)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
- else:
- deserialized = _deserialize(_models.VolumeGroupDetails, response.json())
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
return deserialized # type: ignore
- def _create_initial(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- body: Union[_models.VolumeGroupDetails, _types.VolumeGroupDetails, IO[bytes]],
- **kwargs: Any
+ @distributed_trace
+ def begin_finalize_relocation(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Finalizes the relocation of the volume and cleans up the old volume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._finalize_relocation_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ def _revert_relocation_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -4292,27 +12270,18 @@ def _create_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
-
- _request = build_volume_groups_create_request(
+ _request = build_volumes_revert_relocation_request(
resource_group_name=resource_group_name,
account_name=account_name,
- volume_group_name=volume_group_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -4329,7 +12298,7 @@ def _create_initial(
response = pipeline_response.http_response
- if response.status_code not in [201]:
+ if response.status_code not in [200, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -4342,151 +12311,50 @@ def _create_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
- return deserialized # type: ignore
-
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- body: _models.VolumeGroupDetails,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.VolumeGroupDetails]:
- """Create a volume group along with specified volumes.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param volume_group_name: The name of the volumeGroup. Required.
- :type volume_group_name: str
- :param body: Volume Group object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.VolumeGroupDetails
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeGroupDetails. The VolumeGroupDetails is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeGroupDetails]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- body: _types.VolumeGroupDetails,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.VolumeGroupDetails]:
- """Create a volume group along with specified volumes.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param volume_group_name: The name of the volumeGroup. Required.
- :type volume_group_name: str
- :param body: Volume Group object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.VolumeGroupDetails
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeGroupDetails. The VolumeGroupDetails is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeGroupDetails]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.VolumeGroupDetails]:
- """Create a volume group along with specified volumes.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param volume_group_name: The name of the volumeGroup. Required.
- :type volume_group_name: str
- :param body: Volume Group object supplied in the body of the operation. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeGroupDetails. The VolumeGroupDetails is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeGroupDetails]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
+ return deserialized # type: ignore
+
@distributed_trace
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- volume_group_name: str,
- body: Union[_models.VolumeGroupDetails, _types.VolumeGroupDetails, IO[bytes]],
- **kwargs: Any
- ) -> LROPoller[_models.VolumeGroupDetails]:
- """Create a volume group along with specified volumes.
+ def begin_revert_relocation(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Reverts the volume relocation process, cleans up the new volume and starts using the
+ former-existing volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param volume_group_name: The name of the volumeGroup. Required.
- :type volume_group_name: str
- :param body: Volume Group object supplied in the body of the operation. Is either a
- VolumeGroupDetails type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.VolumeGroupDetails or
- ~azure.mgmt.netapp.types.VolumeGroupDetails or IO[bytes]
- :return: An instance of LROPoller that returns VolumeGroupDetails. The VolumeGroupDetails is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeGroupDetails]
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.VolumeGroupDetails] = kwargs.pop("cls", None)
+ cls: ClsType[None] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._create_initial(
+ raw_result = self._revert_relocation_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- volume_group_name=volume_group_name,
- body=body,
- content_type=content_type,
+ pool_name=pool_name,
+ volume_name=volume_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -4495,16 +12363,9 @@ def begin_create(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response):
- response_headers = {}
- response = pipeline_response.http_response
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = _deserialize(_models.VolumeGroupDetails, response.json())
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
- return deserialized
+ return cls(pipeline_response, None, {}) # type: ignore
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -4519,18 +12380,49 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.VolumeGroupDetails].from_continuation_token(
+ return LROPoller[None].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.VolumeGroupDetails](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- def _delete_initial(
- self, resource_group_name: str, account_name: str, volume_group_name: str, **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-01",
+ params_added_on={
+ "2025-12-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _list_quota_report_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.QuotaReportFilterRequest, _types.QuotaReportFilterRequest, IO[bytes]]] = None,
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -4540,17 +12432,32 @@ def _delete_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volume_groups_delete_request(
+ content_type = content_type or "application/json" if body else None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ if body is not None:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ else:
+ _content = None
+
+ _request = build_volumes_list_quota_report_request(
resource_group_name=resource_group_name,
account_name=account_name,
- volume_group_name=volume_group_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -4567,7 +12474,7 @@ def _delete_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202, 204]:
+ if response.status_code not in [200, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -4581,6 +12488,9 @@ def _delete_initial(
response_headers = {}
if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -4591,35 +12501,182 @@ def _delete_initial(
return deserialized # type: ignore
+ @overload
+ def begin_list_quota_report(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_models.QuotaReportFilterRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ListQuotaReportResult]:
+ """Get quota report for volume (with filter support).
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.QuotaReportFilterRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ListQuotaReportResult. The ListQuotaReportResult
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ListQuotaReportResult]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_list_quota_report(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[_types.QuotaReportFilterRequest] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ListQuotaReportResult]:
+ """Get quota report for volume (with filter support).
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Default value is None.
+ :type body: ~azure.mgmt.netapp.types.QuotaReportFilterRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ListQuotaReportResult. The ListQuotaReportResult
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ListQuotaReportResult]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_list_quota_report(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[IO[bytes]] = None,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ListQuotaReportResult]:
+ """Get quota report for volume (with filter support).
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Default value is None.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ListQuotaReportResult. The ListQuotaReportResult
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ListQuotaReportResult]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
@distributed_trace
- def begin_delete(
- self, resource_group_name: str, account_name: str, volume_group_name: str, **kwargs: Any
- ) -> LROPoller[None]:
- """Delete the specified volume group only if there are no volumes under volume group.
+ @api_version_validation(
+ method_added_on="2025-12-01",
+ params_added_on={
+ "2025-12-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_list_quota_report(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Optional[Union[_models.QuotaReportFilterRequest, _types.QuotaReportFilterRequest, IO[bytes]]] = None,
+ **kwargs: Any
+ ) -> LROPoller[_models.ListQuotaReportResult]:
+ """Get quota report for volume (with filter support).
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param volume_group_name: The name of the volumeGroup. Required.
- :type volume_group_name: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Is either a QuotaReportFilterRequest type or a
+ IO[bytes] type. Default value is None.
+ :type body: ~azure.mgmt.netapp.models.QuotaReportFilterRequest or
+ ~azure.mgmt.netapp.types.QuotaReportFilterRequest or IO[bytes]
+ :return: An instance of LROPoller that returns ListQuotaReportResult. The ListQuotaReportResult
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ListQuotaReportResult]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[None] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ content_type = content_type if body else None
+ cls: ClsType[_models.ListQuotaReportResult] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial(
+ raw_result = self._list_quota_report_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- volume_group_name=volume_group_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -4628,9 +12685,19 @@ def begin_delete(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response_headers = {}
+ response = pipeline_response.http_response
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = _deserialize(_models.ListQuotaReportResult, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -4645,125 +12712,25 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.ListQuotaReportResult].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
-
- @distributed_trace
- def list_by_net_app_account(
- self, resource_group_name: str, account_name: str, **kwargs: Any
- ) -> ItemPaged["_models.VolumeGroup"]:
- """List all volume groups for given account.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :return: An iterator like instance of VolumeGroup
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.VolumeGroup]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
-
- cls: ClsType[List[_models.VolumeGroup]] = kwargs.pop("cls", None)
-
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
- def prepare_request(next_link=None):
- if not next_link:
-
- _request = build_volume_groups_list_by_net_app_account_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- else:
- # make call to next link with the client's api-version
- _parsed_next_link = urllib.parse.urlparse(next_link)
- _next_request_params = case_insensitive_dict(
- {
- key: [urllib.parse.quote(v) for v in value]
- for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
- }
- )
- _next_request_params["api-version"] = self._config.api_version
- _request = HttpRequest(
- "GET",
- urllib.parse.urljoin(next_link, _parsed_next_link.path),
- headers=_headers,
- params=_next_request_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- return _request
-
- def extract_data(pipeline_response):
- deserialized = pipeline_response.http_response.json()
- list_of_elem = _deserialize(
- List[_models.VolumeGroup],
- deserialized.get("value", []),
- )
- if cls:
- list_of_elem = cls(list_of_elem) # type: ignore
- return deserialized.get("nextLink") or None, iter(list_of_elem)
-
- def get_next(next_link=None):
- _request = prepare_request(next_link)
-
- _stream = False
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
- response = pipeline_response.http_response
-
- if response.status_code not in [200]:
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- return pipeline_response
-
- return ItemPaged(get_next, extract_data)
+ return LROPoller[_models.ListQuotaReportResult](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
-class BackupsOperations:
+class SnapshotsOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`backups` attribute.
+ :attr:`snapshots` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
@@ -4775,21 +12742,29 @@ def __init__(self, *args, **kwargs) -> None:
@distributed_trace
def get(
- self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
- ) -> _models.Backup:
- """Get the specified Backup under Backup Vault.
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> _models.Snapshot:
+ """Get details of the specified snapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :return: Backup. The Backup is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.Backup
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :return: Snapshot. The Snapshot is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.Snapshot
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map: MutableMapping = {
@@ -4803,13 +12778,14 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.Backup] = kwargs.pop("cls", None)
+ cls: ClsType[_models.Snapshot] = kwargs.pop("cls", None)
- _request = build_backups_get_request(
+ _request = build_snapshots_get_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
- backup_name=backup_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -4844,7 +12820,7 @@ def get(
if _stream:
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- deserialized = _deserialize(_models.Backup, response.json())
+ deserialized = _deserialize(_models.Snapshot, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -4855,9 +12831,10 @@ def _create_initial(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Union[_models.Backup, _types.Backup, IO[bytes]],
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.Snapshot, _types.Snapshot, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -4881,11 +12858,12 @@ def _create_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_backups_create_request(
+ _request = build_snapshots_create_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
- backup_name=backup_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -4906,7 +12884,7 @@ def _create_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 201]:
+ if response.status_code not in [201, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -4919,11 +12897,8 @@ def _create_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 201:
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -4937,32 +12912,35 @@ def begin_create(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: _models.Backup,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: _models.Snapshot,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Backup]:
- """Create a backup under the Backup Vault.
+ ) -> LROPoller[_models.Snapshot]:
+ """Create the specified snapshot within the given volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :param body: Backup object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.Backup
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Snapshot object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.Snapshot
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -4971,32 +12949,35 @@ def begin_create(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: _types.Backup,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: _types.Snapshot,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Backup]:
- """Create a backup under the Backup Vault.
+ ) -> LROPoller[_models.Snapshot]:
+ """Create the specified snapshot within the given volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :param body: Backup object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.Backup
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Snapshot object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.Snapshot
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -5005,32 +12986,35 @@ def begin_create(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Backup]:
- """Create a backup under the Backup Vault.
+ ) -> LROPoller[_models.Snapshot]:
+ """Create the specified snapshot within the given volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :param body: Backup object supplied in the body of the operation. Required.
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Snapshot object supplied in the body of the operation. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -5039,35 +13023,39 @@ def begin_create(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Union[_models.Backup, _types.Backup, IO[bytes]],
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.Snapshot, _types.Snapshot, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Backup]:
- """Create a backup under the Backup Vault.
+ ) -> LROPoller[_models.Snapshot]:
+ """Create the specified snapshot within the given volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :param body: Backup object supplied in the body of the operation. Is either a Backup type or a
- IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.Backup or ~azure.mgmt.netapp.types.Backup or IO[bytes]
- :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Snapshot object supplied in the body of the operation. Is either a Snapshot type
+ or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.Snapshot or ~azure.mgmt.netapp.types.Snapshot or
+ IO[bytes]
+ :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Backup] = kwargs.pop("cls", None)
+ cls: ClsType[_models.Snapshot] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -5075,8 +13063,9 @@ def begin_create(
raw_result = self._create_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
- backup_name=backup_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -5088,10 +13077,14 @@ def begin_create(
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
+ response_headers = {}
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Backup, response.json())
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = _deserialize(_models.Snapshot, response.json())
if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
return deserialized
path_format_arguments = {
@@ -5107,13 +13100,13 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Backup].from_continuation_token(
+ return LROPoller[_models.Snapshot].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Backup](
+ return LROPoller[_models.Snapshot](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
@@ -5121,9 +13114,10 @@ def _update_initial(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Optional[Union[_models.BackupPatch, _types.BackupPatch, IO[bytes]]] = None,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.SnapshotPatch, _types.SnapshotPatch, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -5138,24 +13132,21 @@ def _update_initial(
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json" if body else None
+ content_type = content_type or "application/json"
_content = None
if isinstance(body, (IOBase, bytes)):
_content = body
else:
- if body is not None:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- else:
- _content = None
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_backups_update_request(
+ _request = build_snapshots_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
- backup_name=backup_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -5205,32 +13196,35 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Optional[_models.BackupPatch] = None,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: _models.SnapshotPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Backup]:
- """Patch a Backup under the Backup Vault.
+ ) -> LROPoller[_models.Snapshot]:
+ """Patch a snapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :param body: Backup object supplied in the body of the operation. Default value is None.
- :type body: ~azure.mgmt.netapp.models.BackupPatch
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Snapshot object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.SnapshotPatch
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -5239,32 +13233,35 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Optional[_types.BackupPatch] = None,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: _types.SnapshotPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Backup]:
- """Patch a Backup under the Backup Vault.
+ ) -> LROPoller[_models.Snapshot]:
+ """Patch a snapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :param body: Backup object supplied in the body of the operation. Default value is None.
- :type body: ~azure.mgmt.netapp.types.BackupPatch
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Snapshot object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.SnapshotPatch
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -5273,32 +13270,35 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Optional[IO[bytes]] = None,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Backup]:
- """Patch a Backup under the Backup Vault.
+ ) -> LROPoller[_models.Snapshot]:
+ """Patch a snapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :param body: Backup object supplied in the body of the operation. Default value is None.
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Snapshot object supplied in the body of the operation. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -5307,37 +13307,39 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- backup_name: str,
- body: Optional[Union[_models.BackupPatch, _types.BackupPatch, IO[bytes]]] = None,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.SnapshotPatch, _types.SnapshotPatch, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Backup]:
- """Patch a Backup under the Backup Vault.
+ ) -> LROPoller[_models.Snapshot]:
+ """Patch a snapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
- :param body: Backup object supplied in the body of the operation. Is either a BackupPatch type
- or a IO[bytes] type. Default value is None.
- :type body: ~azure.mgmt.netapp.models.BackupPatch or ~azure.mgmt.netapp.types.BackupPatch or
- IO[bytes]
- :return: An instance of LROPoller that returns Backup. The Backup is compatible with
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Snapshot object supplied in the body of the operation. Is either a SnapshotPatch
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.SnapshotPatch or ~azure.mgmt.netapp.types.SnapshotPatch
+ or IO[bytes]
+ :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Backup]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
- cls: ClsType[_models.Backup] = kwargs.pop("cls", None)
+ cls: ClsType[_models.Snapshot] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -5345,8 +13347,9 @@ def begin_update(
raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
- backup_name=backup_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -5359,7 +13362,7 @@ def begin_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Backup, response.json())
+ deserialized = _deserialize(_models.Snapshot, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -5377,18 +13380,24 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Backup].from_continuation_token(
+ return LROPoller[_models.Snapshot].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Backup](
+ return LROPoller[_models.Snapshot](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
def _delete_initial(
- self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -5403,11 +13412,12 @@ def _delete_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_backups_delete_request(
+ _request = build_snapshots_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
- backup_name=backup_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -5426,7 +13436,7 @@ def _delete_initial(
response = pipeline_response.http_response
- if response.status_code not in [202, 204]:
+ if response.status_code not in [200, 202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -5452,19 +13462,27 @@ def _delete_initial(
@distributed_trace
def begin_delete(
- self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
) -> LROPoller[None]:
- """Delete a Backup under the Backup Vault.
+ """Delete snapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param backup_name: The name of the backup. Required.
- :type backup_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -5480,8 +13498,9 @@ def begin_delete(
raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
- backup_name=backup_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -5516,35 +13535,28 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
@distributed_trace
- def list_by_vault(
- self,
- resource_group_name: str,
- account_name: str,
- backup_vault_name: str,
- *,
- filter: Optional[str] = None,
- **kwargs: Any
- ) -> ItemPaged["_models.Backup"]:
- """List all backups Under a Backup Vault.
+ def list(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.Snapshot"]:
+ """List all snapshots associated with the volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :keyword filter: An option to specify the VolumeResourceId. If present, then only returns the
- backups under the specified volume. Default value is None.
- :paramtype filter: str
- :return: An iterator like instance of Backup
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Backup]
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An iterator like instance of Snapshot
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Snapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[List[_models.Backup]] = kwargs.pop("cls", None)
+ cls: ClsType[List[_models.Snapshot]] = kwargs.pop("cls", None)
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -5557,12 +13569,12 @@ def list_by_vault(
def prepare_request(next_link=None):
if not next_link:
- _request = build_backups_list_by_vault_request(
+ _request = build_snapshots_list_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
subscription_id=self._config.subscription_id,
- filter=filter,
api_version=self._config.api_version,
headers=_headers,
params=_params,
@@ -5602,7 +13614,7 @@ def prepare_request(next_link=None):
def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = _deserialize(
- List[_models.Backup],
+ List[_models.Snapshot],
deserialized.get("value", []),
)
if cls:
@@ -5630,25 +13642,16 @@ def get_next(next_link=None):
return ItemPaged(get_next, extract_data)
- @distributed_trace
- def get_latest_status(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> _models.BackupStatus:
- """Get the latest status of the backup for a volume.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: BackupStatus. The BackupStatus is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.BackupStatus
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ def _restore_files_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.SnapshotRestoreFiles, _types.SnapshotRestoreFiles, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -5657,18 +13660,29 @@ def get_latest_status(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.BackupStatus] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_backups_get_latest_status_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_snapshots_restore_files_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ snapshot_name=snapshot_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -5678,19 +13692,18 @@ def get_latest_status(
_request.url = self._client.format_url(_request.url, **path_format_arguments)
_decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
@@ -5698,21 +13711,138 @@ def get_latest_status(
)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
- else:
- deserialized = _deserialize(_models.BackupStatus, response.json())
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
return deserialized # type: ignore
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: _models.SnapshotRestoreFiles,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Restore the specified files from the specified snapshot to the active filesystem.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Restore payload supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.SnapshotRestoreFiles
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: _types.SnapshotRestoreFiles,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Restore the specified files from the specified snapshot to the active filesystem.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Restore payload supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.SnapshotRestoreFiles
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Restore the specified files from the specified snapshot to the active filesystem.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Restore payload supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
@distributed_trace
- def get_volume_latest_restore_status(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> _models.RestoreStatus:
- """Get the latest status of the restore for a volume.
+ def begin_restore_files(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.SnapshotRestoreFiles, _types.SnapshotRestoreFiles, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Restore the specified files from the specified snapshot to the active filesystem.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -5723,78 +13853,75 @@ def get_volume_latest_restore_status(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :return: RestoreStatus. The RestoreStatus is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.RestoreStatus
+ :param snapshot_name: The name of the snapshot. Required.
+ :type snapshot_name: str
+ :param body: Restore payload supplied in the body of the operation. Is either a
+ SnapshotRestoreFiles type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.SnapshotRestoreFiles or
+ ~azure.mgmt.netapp.types.SnapshotRestoreFiles or IO[bytes]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.RestoreStatus] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._restore_files_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
- _request = build_backups_get_volume_latest_restore_status_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- _decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
-
- response = pipeline_response.http_response
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
)
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
else:
- deserialized = _deserialize(_models.RestoreStatus, response.json())
-
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
-
- return deserialized # type: ignore
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
-class VolumesOperations: # pylint: disable=too-many-public-methods
+class SnapshotPoliciesOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`volumes` attribute.
+ :attr:`snapshot_policies` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
@@ -5806,21 +13933,19 @@ def __init__(self, *args, **kwargs) -> None:
@distributed_trace
def get(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> _models.Volume:
- """Get the details of the specified volume.
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
+ ) -> _models.SnapshotPolicy:
+ """Get a snapshot Policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: Volume. The Volume is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.Volume
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map: MutableMapping = {
@@ -5834,13 +13959,12 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
+ cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", None)
- _request = build_volumes_get_request(
+ _request = build_snapshot_policies_get_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -5875,290 +13999,203 @@ def get(
if _stream:
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- deserialized = _deserialize(_models.Volume, response.json())
+ deserialized = _deserialize(_models.SnapshotPolicy, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- def _create_or_update_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.Volume, _types.Volume, IO[bytes]],
- **kwargs: Any
- ) -> Iterator[bytes]:
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
-
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
-
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
-
- _request = build_volumes_create_or_update_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- content_type=content_type,
- api_version=self._config.api_version,
- content=_content,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- _decompress = kwargs.pop("decompress", True)
- _stream = True
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
-
- response = pipeline_response.http_response
-
- if response.status_code not in [200, 201, 202]:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- response_headers = {}
- if response.status_code == 201:
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
-
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
-
- return deserialized # type: ignore
-
@overload
- def begin_create_or_update(
+ def create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: _models.Volume,
+ snapshot_policy_name: str,
+ body: _models.SnapshotPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Create or update the specified volume within the capacity pool.
+ ) -> _models.SnapshotPolicy:
+ """Create a snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Volume object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.Volume
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :param body: Snapshot policy object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.SnapshotPolicy
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_create_or_update(
+ def create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: _types.Volume,
+ snapshot_policy_name: str,
+ body: _types.SnapshotPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Create or update the specified volume within the capacity pool.
+ ) -> _models.SnapshotPolicy:
+ """Create a snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Volume object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.Volume
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :param body: Snapshot policy object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.SnapshotPolicy
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_create_or_update(
+ def create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ snapshot_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Create or update the specified volume within the capacity pool.
+ ) -> _models.SnapshotPolicy:
+ """Create a snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Volume object supplied in the body of the operation. Required.
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :param body: Snapshot policy object supplied in the body of the operation. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
- def begin_create_or_update(
+ def create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.Volume, _types.Volume, IO[bytes]],
+ snapshot_policy_name: str,
+ body: Union[_models.SnapshotPolicy, _types.SnapshotPolicy, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Create or update the specified volume within the capacity pool.
+ ) -> _models.SnapshotPolicy:
+ """Create a snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Volume object supplied in the body of the operation. Is either a Volume type or a
- IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.Volume or ~azure.mgmt.netapp.types.Volume or IO[bytes]
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :param body: Snapshot policy object supplied in the body of the operation. Is either a
+ SnapshotPolicy type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.SnapshotPolicy or ~azure.mgmt.netapp.types.SnapshotPolicy
+ or IO[bytes]
+ :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
:raises ~azure.core.exceptions.HttpResponseError:
"""
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._create_or_update_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- body=body,
- content_type=content_type,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
+ cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", None)
- def get_long_running_output(pipeline_response):
- response = pipeline_response.http_response
- deserialized = _deserialize(_models.Volume, response.json())
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ _request = build_snapshot_policies_create_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
)
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- polling_method = polling
- if cont_token:
- return LROPoller[_models.Volume].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[_models.Volume](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ deserialized = _deserialize(_models.SnapshotPolicy, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
def _update_initial(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.VolumePatch, _types.VolumePatch, IO[bytes]],
+ snapshot_policy_name: str,
+ body: Union[_models.SnapshotPolicyPatch, _types.SnapshotPolicyPatch, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -6182,11 +14219,10 @@ def _update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_volumes_update_request(
+ _request = build_snapshot_policies_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -6236,32 +14272,29 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: _models.VolumePatch,
+ snapshot_policy_name: str,
+ body: _models.SnapshotPolicyPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Patch the specified volume.
+ ) -> LROPoller[_models.SnapshotPolicy]:
+ """Patch a snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Volume object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.VolumePatch
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :param body: Snapshot policy object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.SnapshotPolicyPatch
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :return: An instance of LROPoller that returns SnapshotPolicy. The SnapshotPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -6270,32 +14303,29 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: _types.VolumePatch,
+ snapshot_policy_name: str,
+ body: _types.SnapshotPolicyPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Patch the specified volume.
+ ) -> LROPoller[_models.SnapshotPolicy]:
+ """Patch a snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Volume object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.VolumePatch
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :param body: Snapshot policy object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.SnapshotPolicyPatch
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :return: An instance of LROPoller that returns SnapshotPolicy. The SnapshotPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -6304,32 +14334,29 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ snapshot_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Patch the specified volume.
+ ) -> LROPoller[_models.SnapshotPolicy]:
+ """Patch a snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Volume object supplied in the body of the operation. Required.
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :param body: Snapshot policy object supplied in the body of the operation. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :return: An instance of LROPoller that returns SnapshotPolicy. The SnapshotPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -6337,37 +14364,34 @@ def begin_update(
def begin_update(
self,
resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.VolumePatch, _types.VolumePatch, IO[bytes]],
+ account_name: str,
+ snapshot_policy_name: str,
+ body: Union[_models.SnapshotPolicyPatch, _types.SnapshotPolicyPatch, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Patch the specified volume.
+ ) -> LROPoller[_models.SnapshotPolicy]:
+ """Patch a snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Volume object supplied in the body of the operation. Is either a VolumePatch type
- or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.VolumePatch or ~azure.mgmt.netapp.types.VolumePatch or
- IO[bytes]
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :param body: Snapshot policy object supplied in the body of the operation. Is either a
+ SnapshotPolicyPatch type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.SnapshotPolicyPatch or
+ ~azure.mgmt.netapp.types.SnapshotPolicyPatch or IO[bytes]
+ :return: An instance of LROPoller that returns SnapshotPolicy. The SnapshotPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
+ cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -6375,8 +14399,7 @@ def begin_update(
raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ snapshot_policy_name=snapshot_policy_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -6389,7 +14412,7 @@ def begin_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Volume, response.json())
+ deserialized = _deserialize(_models.SnapshotPolicy, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -6407,25 +14430,18 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Volume].from_continuation_token(
+ return LROPoller[_models.SnapshotPolicy].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Volume](
+ return LROPoller[_models.SnapshotPolicy](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
def _delete_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- *,
- force_delete: Optional[bool] = None,
- **kwargs: Any
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -6440,13 +14456,11 @@ def _delete_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_delete_request(
+ _request = build_snapshot_policies_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
- force_delete=force_delete,
api_version=self._config.api_version,
headers=_headers,
params=_params,
@@ -6464,7 +14478,7 @@ def _delete_initial(
response = pipeline_response.http_response
- if response.status_code not in [202, 204]:
+ if response.status_code not in [200, 202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -6490,29 +14504,17 @@ def _delete_initial(
@distributed_trace
def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- *,
- force_delete: Optional[bool] = None,
- **kwargs: Any
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
) -> LROPoller[None]:
- """Delete the specified volume.
+ """Delete snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :keyword force_delete: An option to force delete the volume. Will cleanup resources connected
- to the particular volume. Default value is None.
- :paramtype force_delete: bool
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -6528,9 +14530,7 @@ def begin_delete(
raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- force_delete=force_delete,
+ snapshot_policy_name=snapshot_policy_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -6565,26 +14565,22 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
@distributed_trace
- def list(
- self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
- ) -> ItemPaged["_models.Volume"]:
- """List all volumes within the capacity pool.
+ def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> ItemPaged["_models.SnapshotPolicy"]:
+ """List snapshot policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :return: An iterator like instance of Volume
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Volume]
+ :return: An iterator like instance of SnapshotPolicy
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.SnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[List[_models.Volume]] = kwargs.pop("cls", None)
+ cls: ClsType[List[_models.SnapshotPolicy]] = kwargs.pop("cls", None)
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -6597,10 +14593,9 @@ def list(
def prepare_request(next_link=None):
if not next_link:
- _request = build_volumes_list_request(
+ _request = build_snapshot_policies_list_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -6641,7 +14636,7 @@ def prepare_request(next_link=None):
def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = _deserialize(
- List[_models.Volume],
+ List[_models.SnapshotPolicy],
deserialized.get("value", []),
)
if cls:
@@ -6669,9 +14664,24 @@ def get_next(next_link=None):
return ItemPaged(get_next, extract_data)
- def _populate_availability_zone_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> Iterator[bytes]:
+ @distributed_trace
+ def list_volumes(
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
+ ) -> _models.SnapshotPolicyVolumeList:
+ """Get volumes associated with snapshot policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the snapshot policy. Required.
+ :type snapshot_policy_name: str
+ :return: SnapshotPolicyVolumeList. The SnapshotPolicyVolumeList is compatible with
+ MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.SnapshotPolicyVolumeList
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -6683,13 +14693,12 @@ def _populate_availability_zone_initial(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+ cls: ClsType[_models.SnapshotPolicyVolumeList] = kwargs.pop("cls", None)
- _request = build_volumes_populate_availability_zone_request(
+ _request = build_snapshot_policies_list_volumes_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -6701,18 +14710,19 @@ def _populate_availability_zone_initial(
_request.url = self._client.format_url(_request.url, **path_format_arguments)
_decompress = kwargs.pop("decompress", True)
- _stream = True
+ _stream = kwargs.pop("stream", False)
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
@@ -6720,96 +14730,115 @@ def _populate_availability_zone_initial(
)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.SnapshotPolicyVolumeList, response.json())
if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
+
+class BackupPoliciesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`backup_policies` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
@distributed_trace
- def begin_populate_availability_zone(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """This operation will populate availability zone information for a volume.
+ def get(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
+ ) -> _models.BackupPolicy:
+ """Get a particular backup Policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :return: BackupPolicy. The BackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.BackupPolicy
:raises ~azure.core.exceptions.HttpResponseError:
"""
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._populate_availability_zone_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
-
- def get_long_running_output(pipeline_response):
- response = pipeline_response.http_response
- deserialized = _deserialize(_models.Volume, response.json())
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
+ cls: ClsType[_models.BackupPolicy] = kwargs.pop("cls", None)
+ _request = build_backup_policies_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
- )
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
- else:
- polling_method = polling
- if cont_token:
- return LROPoller[_models.Volume].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
)
- return LROPoller[_models.Volume](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- def _revert_initial(
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.BackupPolicy, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _create_initial(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.VolumeRevert, _types.VolumeRevert, IO[bytes]],
+ backup_policy_name: str,
+ body: Union[_models.BackupPolicy, _types.BackupPolicy, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -6833,11 +14862,10 @@ def _revert_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_volumes_revert_request(
+ _request = build_backup_policies_create_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_policy_name=backup_policy_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -6858,7 +14886,7 @@ def _revert_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [200, 201, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -6871,6 +14899,12 @@ def _revert_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -6883,276 +14917,140 @@ def _revert_initial(
return deserialized # type: ignore
@overload
- def begin_revert(
+ def begin_create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: _models.VolumeRevert,
+ backup_policy_name: str,
+ body: _models.BackupPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Revert a volume to the snapshot specified in the body.
+ ) -> LROPoller[_models.BackupPolicy]:
+ """Create a backup policy for Netapp Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Object for snapshot to revert supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.VolumeRevert
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :param body: Backup policy object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.BackupPolicy
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_revert(
+ def begin_create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: _types.VolumeRevert,
+ backup_policy_name: str,
+ body: _types.BackupPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Revert a volume to the snapshot specified in the body.
+ ) -> LROPoller[_models.BackupPolicy]:
+ """Create a backup policy for Netapp Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Object for snapshot to revert supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.VolumeRevert
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :param body: Backup policy object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.BackupPolicy
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_revert(
+ def begin_create(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ backup_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Revert a volume to the snapshot specified in the body.
+ ) -> LROPoller[_models.BackupPolicy]:
+ """Create a backup policy for Netapp Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Object for snapshot to revert supplied in the body of the operation. Required.
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :param body: Backup policy object supplied in the body of the operation. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @distributed_trace
- def begin_revert(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.VolumeRevert, _types.VolumeRevert, IO[bytes]],
- **kwargs: Any
- ) -> LROPoller[None]:
- """Revert a volume to the snapshot specified in the body.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Object for snapshot to revert supplied in the body of the operation. Is either a
- VolumeRevert type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.VolumeRevert or ~azure.mgmt.netapp.types.VolumeRevert or
- IO[bytes]
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
-
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[None] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._revert_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- body=body,
- content_type=content_type,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
-
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
- if cls:
- return cls(pipeline_response, None, {}) # type: ignore
-
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
-
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
- )
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
- else:
- polling_method = polling
- if cont_token:
- return LROPoller[None].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
-
- def _reset_cifs_password_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> Iterator[bytes]:
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
-
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
-
- _request = build_volumes_reset_cifs_password_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- _decompress = kwargs.pop("decompress", True)
- _stream = True
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
-
- response = pipeline_response.http_response
-
- if response.status_code not in [202]:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- response_headers = {}
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
-
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
-
- return deserialized # type: ignore
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
@distributed_trace
- def begin_reset_cifs_password(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> LROPoller[None]:
- """Reset cifs password from volume.
+ def begin_create(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: Union[_models.BackupPolicy, _types.BackupPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupPolicy]:
+ """Create a backup policy for Netapp Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :param body: Backup policy object supplied in the body of the operation. Is either a
+ BackupPolicy type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.BackupPolicy or ~azure.mgmt.netapp.types.BackupPolicy or
+ IO[bytes]
+ :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[None] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.BackupPolicy] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._reset_cifs_password_initial(
+ raw_result = self._create_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_policy_name=backup_policy_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -7161,9 +15059,12 @@ def begin_reset_cifs_password(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.BackupPolicy, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -7178,16 +15079,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.BackupPolicy].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ return LROPoller[_models.BackupPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
- def _split_clone_from_parent_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: Union[_models.BackupPolicyPatch, _types.BackupPolicyPatch, IO[bytes]],
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -7197,18 +15105,27 @@ def _split_clone_from_parent_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_split_clone_from_parent_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_backup_policies_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_policy_name=backup_policy_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -7239,7 +15156,9 @@ def _split_clone_from_parent_initial(
response_headers = {}
if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -7249,39 +15168,141 @@ def _split_clone_from_parent_initial(
return deserialized # type: ignore
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: _models.BackupPolicyPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupPolicy]:
+ """Patch a backup policy for Netapp Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :param body: Backup policy object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.BackupPolicyPatch
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: _types.BackupPolicyPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupPolicy]:
+ """Patch a backup policy for Netapp Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :param body: Backup policy object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.BackupPolicyPatch
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupPolicy]:
+ """Patch a backup policy for Netapp Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :param body: Backup policy object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
@distributed_trace
- def begin_split_clone_from_parent(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> LROPoller[_models.Volume]:
- """Split operation to convert clone volume to an independent volume.
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: Union[_models.BackupPolicyPatch, _types.BackupPolicyPatch, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupPolicy]:
+ """Patch a backup policy for Netapp Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: An instance of LROPoller that returns Volume. The Volume is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Volume]
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
+ :param body: Backup policy object supplied in the body of the operation. Is either a
+ BackupPolicyPatch type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.BackupPolicyPatch or
+ ~azure.mgmt.netapp.types.BackupPolicyPatch or IO[bytes]
+ :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.Volume] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.BackupPolicy] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._split_clone_from_parent_initial(
+ raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_policy_name=backup_policy_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -7292,7 +15313,7 @@ def begin_split_clone_from_parent(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Volume, response.json())
+ deserialized = _deserialize(_models.BackupPolicy, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -7310,24 +15331,18 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Volume].from_continuation_token(
+ return LROPoller[_models.BackupPolicy].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Volume](
+ return LROPoller[_models.BackupPolicy](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _break_file_locks_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[Union[_models.BreakFileLocksRequest, _types.BreakFileLocksRequest, IO[bytes]]] = None,
- **kwargs: Any
+ def _delete_initial(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -7337,32 +15352,17 @@ def _break_file_locks_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
-
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
-
- content_type = content_type or "application/json" if body else None
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- if body is not None:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- else:
- _content = None
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
- _request = build_volumes_break_file_locks_request(
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_backup_policies_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_policy_name=backup_policy_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -7379,7 +15379,7 @@ def _break_file_locks_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [200, 202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -7403,119 +15403,197 @@ def _break_file_locks_initial(
return deserialized # type: ignore
- @overload
- def begin_break_file_locks(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[_models.BreakFileLocksRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
+ @distributed_trace
+ def begin_delete(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
) -> LROPoller[None]:
- """Break all the file locks on a volume.
+ """Delete backup policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Optional body to provide the ability to clear file locks with selected options.
- Default value is None.
- :type body: ~azure.mgmt.netapp.models.BreakFileLocksRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
+ :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
+ :type backup_policy_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
- @overload
- def begin_break_file_locks(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[_types.BreakFileLocksRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Break all the file locks on a volume.
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._delete_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Optional body to provide the ability to clear file locks with selected options.
- Default value is None.
- :type body: ~azure.mgmt.netapp.types.BreakFileLocksRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
- @overload
- def begin_break_file_locks(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Break all the file locks on a volume.
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> ItemPaged["_models.BackupPolicy"]:
+ """List backup policies for Netapp Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Optional body to provide the ability to clear file locks with selected options.
- Default value is None.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An iterator like instance of BackupPolicy
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.BackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.BackupPolicy]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_backup_policies_list_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.BackupPolicy],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+
+class VolumeQuotaRulesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`volume_quota_rules` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
@distributed_trace
- def begin_break_file_locks(
+ def get(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[Union[_models.BreakFileLocksRequest, _types.BreakFileLocksRequest, IO[bytes]]] = None,
- **kwargs: Any
- ) -> LROPoller[None]:
- """Break all the file locks on a volume.
+ volume_quota_rule_name: str,
+ **kwargs: Any
+ ) -> _models.VolumeQuotaRule:
+ """Get details of the specified quota rule.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -7526,99 +15604,80 @@ def begin_break_file_locks(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Optional body to provide the ability to clear file locks with selected options. Is
- either a BreakFileLocksRequest type or a IO[bytes] type. Default value is None.
- :type body: ~azure.mgmt.netapp.models.BreakFileLocksRequest or
- ~azure.mgmt.netapp.types.BreakFileLocksRequest or IO[bytes]
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :return: VolumeQuotaRule. The VolumeQuotaRule is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.VolumeQuotaRule
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
- cls: ClsType[None] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._break_file_locks_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- body=body,
- content_type=content_type,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
- if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ cls: ClsType[_models.VolumeQuotaRule] = kwargs.pop("cls", None)
+ _request = build_volume_quota_rules_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ volume_quota_rule_name=volume_quota_rule_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
)
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- polling_method = polling
- if cont_token:
- return LROPoller[None].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ deserialized = _deserialize(_models.VolumeQuotaRule, response.json())
- @api_version_validation(
- method_added_on="2025-08-01",
- params_added_on={
- "2025-08-01": [
- "api_version",
- "subscription_id",
- "resource_group_name",
- "account_name",
- "pool_name",
- "volume_name",
- "content_type",
- "accept",
- ]
- },
- api_versions_list=[
- "2025-08-01",
- "2025-09-01",
- "2025-12-01",
- "2025-12-15-preview",
- "2026-01-01",
- "2026-01-15-preview",
- "2026-03-01",
- "2026-03-15-preview",
- "2026-04-01",
- "2026-04-15-preview",
- "2026-05-01",
- ],
- )
- def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-long
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _create_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Union[_models.GetGroupIdListForLDAPUserRequest, _types.GetGroupIdListForLDAPUserRequest, IO[bytes]],
+ volume_quota_rule_name: str,
+ body: Union[_models.VolumeQuotaRule, _types.VolumeQuotaRule, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -7642,11 +15701,12 @@ def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-l
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_volumes_list_get_group_id_list_for_ldap_user_request(
+ _request = build_volume_quota_rules_create_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ volume_quota_rule_name=volume_quota_rule_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -7667,7 +15727,7 @@ def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-l
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [200, 201]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -7680,10 +15740,7 @@ def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-l
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 202:
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
+ if response.status_code == 201:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -7695,18 +15752,19 @@ def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-l
return deserialized # type: ignore
@overload
- def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
+ def begin_create(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: _models.GetGroupIdListForLDAPUserRequest,
+ volume_quota_rule_name: str,
+ body: _models.VolumeQuotaRule,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.GetGroupIdListForLDAPUserResponse]:
- """Returns the list of group Ids for a specific LDAP User.
+ ) -> LROPoller[_models.VolumeQuotaRule]:
+ """Create the specified quota rule within the given volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -7717,31 +15775,33 @@ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Returns group Id list for a specific LDAP user. Required.
- :type body: ~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserRequest
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :param body: Quota rule object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumeQuotaRule
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns GetGroupIdListForLDAPUserResponse. The
- GetGroupIdListForLDAPUserResponse is compatible with MutableMapping
- :rtype:
- ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse]
+ :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
+ def begin_create(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: _types.GetGroupIdListForLDAPUserRequest,
+ volume_quota_rule_name: str,
+ body: _types.VolumeQuotaRule,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.GetGroupIdListForLDAPUserResponse]:
- """Returns the list of group Ids for a specific LDAP User.
+ ) -> LROPoller[_models.VolumeQuotaRule]:
+ """Create the specified quota rule within the given volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -7752,31 +15812,33 @@ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Returns group Id list for a specific LDAP user. Required.
- :type body: ~azure.mgmt.netapp.types.GetGroupIdListForLDAPUserRequest
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :param body: Quota rule object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.VolumeQuotaRule
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns GetGroupIdListForLDAPUserResponse. The
- GetGroupIdListForLDAPUserResponse is compatible with MutableMapping
- :rtype:
- ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse]
+ :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
+ def begin_create(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
+ volume_quota_rule_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.GetGroupIdListForLDAPUserResponse]:
- """Returns the list of group Ids for a specific LDAP User.
+ ) -> LROPoller[_models.VolumeQuotaRule]:
+ """Create the specified quota rule within the given volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -7787,57 +15849,31 @@ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Returns group Id list for a specific LDAP user. Required.
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :param body: Quota rule object supplied in the body of the operation. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns GetGroupIdListForLDAPUserResponse. The
- GetGroupIdListForLDAPUserResponse is compatible with MutableMapping
- :rtype:
- ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse]
+ :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
- @api_version_validation(
- method_added_on="2025-08-01",
- params_added_on={
- "2025-08-01": [
- "api_version",
- "subscription_id",
- "resource_group_name",
- "account_name",
- "pool_name",
- "volume_name",
- "content_type",
- "accept",
- ]
- },
- api_versions_list=[
- "2025-08-01",
- "2025-09-01",
- "2025-12-01",
- "2025-12-15-preview",
- "2026-01-01",
- "2026-01-15-preview",
- "2026-03-01",
- "2026-03-15-preview",
- "2026-04-01",
- "2026-04-15-preview",
- "2026-05-01",
- ],
- )
- def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
+ def begin_create(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Union[_models.GetGroupIdListForLDAPUserRequest, _types.GetGroupIdListForLDAPUserRequest, IO[bytes]],
+ volume_quota_rule_name: str,
+ body: Union[_models.VolumeQuotaRule, _types.VolumeQuotaRule, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.GetGroupIdListForLDAPUserResponse]:
- """Returns the list of group Ids for a specific LDAP User.
+ ) -> LROPoller[_models.VolumeQuotaRule]:
+ """Create the specified quota rule within the given volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -7845,33 +15881,35 @@ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
:param account_name: The name of the NetApp account. Required.
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Returns group Id list for a specific LDAP user. Is either a
- GetGroupIdListForLDAPUserRequest type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserRequest or
- ~azure.mgmt.netapp.types.GetGroupIdListForLDAPUserRequest or IO[bytes]
- :return: An instance of LROPoller that returns GetGroupIdListForLDAPUserResponse. The
- GetGroupIdListForLDAPUserResponse is compatible with MutableMapping
- :rtype:
- ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse]
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :param body: Quota rule object supplied in the body of the operation. Is either a
+ VolumeQuotaRule type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumeQuotaRule or
+ ~azure.mgmt.netapp.types.VolumeQuotaRule or IO[bytes]
+ :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.GetGroupIdListForLDAPUserResponse] = kwargs.pop("cls", None)
+ cls: ClsType[_models.VolumeQuotaRule] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._list_get_group_id_list_for_ldap_user_initial(
+ raw_result = self._create_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ volume_quota_rule_name=volume_quota_rule_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -7884,7 +15922,7 @@ def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.GetGroupIdListForLDAPUserResponse, response.json())
+ deserialized = _deserialize(_models.VolumeQuotaRule, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -7902,23 +15940,24 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.GetGroupIdListForLDAPUserResponse].from_continuation_token(
+ return LROPoller[_models.VolumeQuotaRule].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.GetGroupIdListForLDAPUserResponse](
+ return LROPoller[_models.VolumeQuotaRule](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _break_replication_initial(
+ def _update_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[Union[_models.BreakReplicationRequest, _types.BreakReplicationRequest, IO[bytes]]] = None,
+ volume_quota_rule_name: str,
+ body: Union[_models.VolumeQuotaRulePatch, _types.VolumeQuotaRulePatch, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -7933,24 +15972,21 @@ def _break_replication_initial(
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json" if body else None
+ content_type = content_type or "application/json"
_content = None
if isinstance(body, (IOBase, bytes)):
_content = body
else:
- if body is not None:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- else:
- _content = None
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_volumes_break_replication_request(
+ _request = build_volume_quota_rules_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ volume_quota_rule_name=volume_quota_rule_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -7996,18 +16032,19 @@ def _break_replication_initial(
return deserialized # type: ignore
@overload
- def begin_break_replication(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[_models.BreakReplicationRequest] = None,
+ volume_quota_rule_name: str,
+ body: _models.VolumeQuotaRulePatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Break the replication connection on the destination volume.
+ ) -> LROPoller[_models.VolumeQuotaRule]:
+ """Patch a quota rule.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8018,29 +16055,33 @@ def begin_break_replication(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Optional body to force break the replication. Default value is None.
- :type body: ~azure.mgmt.netapp.models.BreakReplicationRequest
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :param body: Quota rule object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumeQuotaRulePatch
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_break_replication(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[_types.BreakReplicationRequest] = None,
+ volume_quota_rule_name: str,
+ body: _types.VolumeQuotaRulePatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Break the replication connection on the destination volume.
+ ) -> LROPoller[_models.VolumeQuotaRule]:
+ """Patch a quota rule.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8051,29 +16092,33 @@ def begin_break_replication(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Optional body to force break the replication. Default value is None.
- :type body: ~azure.mgmt.netapp.types.BreakReplicationRequest
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :param body: Quota rule object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.VolumeQuotaRulePatch
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_break_replication(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[IO[bytes]] = None,
+ volume_quota_rule_name: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Break the replication connection on the destination volume.
+ ) -> LROPoller[_models.VolumeQuotaRule]:
+ """Patch a quota rule.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8084,27 +16129,31 @@ def begin_break_replication(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Optional body to force break the replication. Default value is None.
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :param body: Quota rule object supplied in the body of the operation. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
- def begin_break_replication(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[Union[_models.BreakReplicationRequest, _types.BreakReplicationRequest, IO[bytes]]] = None,
+ volume_quota_rule_name: str,
+ body: Union[_models.VolumeQuotaRulePatch, _types.VolumeQuotaRulePatch, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[None]:
- """Break the replication connection on the destination volume.
+ ) -> LROPoller[_models.VolumeQuotaRule]:
+ """Patch a quota rule.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8115,29 +16164,32 @@ def begin_break_replication(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Optional body to force break the replication. Is either a BreakReplicationRequest
- type or a IO[bytes] type. Default value is None.
- :type body: ~azure.mgmt.netapp.models.BreakReplicationRequest or
- ~azure.mgmt.netapp.types.BreakReplicationRequest or IO[bytes]
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
+ :param body: Quota rule object supplied in the body of the operation. Is either a
+ VolumeQuotaRulePatch type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.VolumeQuotaRulePatch or
+ ~azure.mgmt.netapp.types.VolumeQuotaRulePatch or IO[bytes]
+ :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[_models.VolumeQuotaRule] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._break_replication_initial(
+ raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ volume_quota_rule_name=volume_quota_rule_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -8148,9 +16200,12 @@ def begin_break_replication(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.VolumeQuotaRule, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -8165,21 +16220,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.VolumeQuotaRule].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ return LROPoller[_models.VolumeQuotaRule](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
- def _reestablish_replication_initial(
+ def _delete_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Union[_models.ReestablishReplicationRequest, _types.ReestablishReplicationRequest, IO[bytes]],
+ volume_quota_rule_name: str,
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -8190,28 +16247,19 @@ def _reestablish_replication_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
-
- _request = build_volumes_reestablish_replication_request(
+ _request = build_volume_quota_rules_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ volume_quota_rule_name=volume_quota_rule_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -8228,7 +16276,7 @@ def _reestablish_replication_initial(
response = pipeline_response.http_response
- if response.status_code not in [202]:
+ if response.status_code not in [200, 202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -8241,130 +16289,28 @@ def _reestablish_replication_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
-
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
-
- return deserialized # type: ignore
-
- @overload
- def begin_reestablish_replication(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: _models.ReestablishReplicationRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or
- policy-based snapshots.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: body for the id of the source volume. Required.
- :type body: ~azure.mgmt.netapp.models.ReestablishReplicationRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_reestablish_replication(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: _types.ReestablishReplicationRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or
- policy-based snapshots.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: body for the id of the source volume. Required.
- :type body: ~azure.mgmt.netapp.types.ReestablishReplicationRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_reestablish_replication(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or
- policy-based snapshots.
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: body for the id of the source volume. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
- def begin_reestablish_replication(
+ def begin_delete(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Union[_models.ReestablishReplicationRequest, _types.ReestablishReplicationRequest, IO[bytes]],
+ volume_quota_rule_name: str,
**kwargs: Any
) -> LROPoller[None]:
- """Re-establish a previously deleted replication between 2 volumes that have a common ad-hoc or
- policy-based snapshots.
+ """Delete quota rule.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8375,30 +16321,26 @@ def begin_reestablish_replication(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: body for the id of the source volume. Is either a ReestablishReplicationRequest
- type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.ReestablishReplicationRequest or
- ~azure.mgmt.netapp.types.ReestablishReplicationRequest or IO[bytes]
+ :param volume_quota_rule_name: The name of volume quota rule. Required.
+ :type volume_quota_rule_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[None] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._reestablish_replication_initial(
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- body=body,
- content_type=content_type,
+ volume_quota_rule_name=volume_quota_rule_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -8433,10 +16375,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
@distributed_trace
- def replication_status(
+ def list_by_volume(
self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> _models.ReplicationStatus:
- """Get the status of the replication.
+ ) -> ItemPaged["_models.VolumeQuotaRule"]:
+ """List all quota rules associated with the volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8447,10 +16389,15 @@ def replication_status(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :return: ReplicationStatus. The ReplicationStatus is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.ReplicationStatus
+ :return: An iterator like instance of VolumeQuotaRule
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.VolumeQuotaRule]
:raises ~azure.core.exceptions.HttpResponseError:
"""
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.VolumeQuotaRule]] = kwargs.pop("cls", None)
+
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -8459,136 +16406,142 @@ def replication_status(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
+ def prepare_request(next_link=None):
+ if not next_link:
- cls: ClsType[_models.ReplicationStatus] = kwargs.pop("cls", None)
+ _request = build_volume_quota_rules_list_by_volume_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- _request = build_volumes_replication_status_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- _decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
+ return _request
- response = pipeline_response.http_response
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.VolumeQuotaRule],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+ response = pipeline_response.http_response
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
- else:
- deserialized = _deserialize(_models.ReplicationStatus, response.json())
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
+ return pipeline_response
- return deserialized # type: ignore
+ return ItemPaged(get_next, extract_data)
- @overload
- def list_replications(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[_models.ListReplicationsRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> ItemPaged["_models.Replication"]:
- """List all replications for a specified volume.
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: The content of the action request. Default value is None.
- :type body: ~azure.mgmt.netapp.models.ListReplicationsRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An iterator like instance of Replication
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+class RansomwareReportsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
- @overload
- def list_replications(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[_types.ListReplicationsRequest] = None,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> ItemPaged["_models.Replication"]:
- """List all replications for a specified volume.
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`ransomware_reports` attribute.
+ """
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: The content of the action request. Default value is None.
- :type body: ~azure.mgmt.netapp.types.ListReplicationsRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An iterator like instance of Replication
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
- @overload
- def list_replications(
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-01",
+ params_added_on={
+ "2025-12-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "ransomware_report_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[IO[bytes]] = None,
- *,
- content_type: str = "application/json",
+ ransomware_report_name: str,
**kwargs: Any
- ) -> ItemPaged["_models.Replication"]:
- """List all replications for a specified volume.
+ ) -> _models.RansomwareReport:
+ """Get details of the specified ransomware report (ARP) ARP reports are created with a list of
+ suspected files when it detects any combination of high data entropy, abnormal volume activity
+ with data encryption, and unusual file extensions. ARP creates snapshots named
+ Anti_ransomware_backup when it detects a potential ransomware threat. You can use one of these
+ ARP snapshots or another snapshot of your volume to restore data.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8599,34 +16552,87 @@ def list_replications(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: The content of the action request. Default value is None.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An iterator like instance of Replication
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication]
+ :param ransomware_report_name: The name of the ransomware report. Required.
+ :type ransomware_report_name: str
+ :return: RansomwareReport. The RansomwareReport is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.RansomwareReport
:raises ~azure.core.exceptions.HttpResponseError:
"""
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.RansomwareReport] = kwargs.pop("cls", None)
+
+ _request = build_ransomware_reports_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ ransomware_report_name=ransomware_report_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.RansomwareReport, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
@api_version_validation(
- method_added_on="2025-08-01",
+ method_added_on="2025-12-01",
params_added_on={
- "2025-08-01": [
+ "2025-12-01": [
"api_version",
"subscription_id",
"resource_group_name",
"account_name",
"pool_name",
"volume_name",
- "content_type",
"accept",
]
},
api_versions_list=[
- "2025-08-01",
- "2025-09-01",
"2025-12-01",
"2025-12-15-preview",
"2026-01-01",
@@ -8636,18 +16642,18 @@ def list_replications(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
- def list_replications(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[Union[_models.ListReplicationsRequest, _types.ListReplicationsRequest, IO[bytes]]] = None,
- **kwargs: Any
- ) -> ItemPaged["_models.Replication"]:
- """List all replications for a specified volume.
+ def list(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.RansomwareReport"]:
+ """List all ransomware reports for the volume Returns a list of the Advanced Ransomware Protection
+ (ARP) reports for the volume. ARP reports are created with a list of suspected files when it
+ detects any combination of high data entropy, abnormal volume activity with data encryption,
+ and unusual file extensions. ARP creates snapshots named Anti_ransomware_backup when it detects
+ a potential ransomware threat. You can use one of these ARP snapshots or another snapshot of
+ your volume to restore data".
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8658,20 +16664,14 @@ def list_replications(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: The content of the action request. Is either a ListReplicationsRequest type or a
- IO[bytes] type. Default value is None.
- :type body: ~azure.mgmt.netapp.models.ListReplicationsRequest or
- ~azure.mgmt.netapp.types.ListReplicationsRequest or IO[bytes]
- :return: An iterator like instance of Replication
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication]
+ :return: An iterator like instance of RansomwareReport
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.RansomwareReport]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
- cls: ClsType[List[_models.Replication]] = kwargs.pop("cls", None)
+ cls: ClsType[List[_models.RansomwareReport]] = kwargs.pop("cls", None)
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -8680,28 +16680,17 @@ def list_replications(
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
- content_type = content_type or "application/json" if body else None
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- if body is not None:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- else:
- _content = None
def prepare_request(next_link=None):
if not next_link:
- _request = build_volumes_list_replications_request(
+ _request = build_ransomware_reports_list_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -8740,7 +16729,7 @@ def prepare_request(next_link=None):
def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = _deserialize(
- List[_models.Replication],
+ List[_models.RansomwareReport],
deserialized.get("value", []),
)
if cls:
@@ -8768,8 +16757,42 @@ def get_next(next_link=None):
return ItemPaged(get_next, extract_data)
- def _resync_replication_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-01",
+ params_added_on={
+ "2025-12-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "ransomware_report_name",
+ "content_type",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _clear_suspects_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ body: Union[_models.RansomwareSuspectsClearRequest, _types.RansomwareSuspectsClearRequest, IO[bytes]],
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -8779,18 +16802,29 @@ def _resync_replication_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_resync_replication_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_ransomware_reports_clear_suspects_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ ransomware_report_name=ransomware_report_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -8807,7 +16841,7 @@ def _resync_replication_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -8819,24 +16853,180 @@ def _resync_replication_initial(
)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ response_headers = {}
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_clear_suspects(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ body: _models.RansomwareSuspectsClearRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Clear ransomware suspects for the given Advanced Ransomware Protection report. You should
+ evaluate the report to determine whether the activity is acceptable (false positive) or whether
+ an attack seems malicious. ARP creates snapshots named Anti_ransomware_backup when it detects a
+ potential ransomware threat. You can use one of these ARP snapshots or another snapshot of your
+ volume to restore data",.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param ransomware_report_name: The name of the ransomware report. Required.
+ :type ransomware_report_name: str
+ :param body: Clear suspects request object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.RansomwareSuspectsClearRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_clear_suspects(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ body: _types.RansomwareSuspectsClearRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Clear ransomware suspects for the given Advanced Ransomware Protection report. You should
+ evaluate the report to determine whether the activity is acceptable (false positive) or whether
+ an attack seems malicious. ARP creates snapshots named Anti_ransomware_backup when it detects a
+ potential ransomware threat. You can use one of these ARP snapshots or another snapshot of your
+ volume to restore data",.
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param ransomware_report_name: The name of the ransomware report. Required.
+ :type ransomware_report_name: str
+ :param body: Clear suspects request object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.RansomwareSuspectsClearRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ @overload
+ def begin_clear_suspects(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Clear ransomware suspects for the given Advanced Ransomware Protection report. You should
+ evaluate the report to determine whether the activity is acceptable (false positive) or whether
+ an attack seems malicious. ARP creates snapshots named Anti_ransomware_backup when it detects a
+ potential ransomware threat. You can use one of these ARP snapshots or another snapshot of your
+ volume to restore data",.
- return deserialized # type: ignore
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param ransomware_report_name: The name of the ransomware report. Required.
+ :type ransomware_report_name: str
+ :param body: Clear suspects request object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
@distributed_trace
- def begin_resync_replication(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-01",
+ params_added_on={
+ "2025-12-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "ransomware_report_name",
+ "content_type",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-01",
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_clear_suspects(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ ransomware_report_name: str,
+ body: Union[_models.RansomwareSuspectsClearRequest, _types.RansomwareSuspectsClearRequest, IO[bytes]],
+ **kwargs: Any
) -> LROPoller[None]:
- """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.
+ """Clear ransomware suspects for the given Advanced Ransomware Protection report. You should
+ evaluate the report to determine whether the activity is acceptable (false positive) or whether
+ an attack seems malicious. ARP creates snapshots named Anti_ransomware_backup when it detects a
+ potential ransomware threat. You can use one of these ARP snapshots or another snapshot of your
+ volume to restore data",.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -8847,23 +17037,33 @@ def begin_resync_replication(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
+ :param ransomware_report_name: The name of the ransomware report. Required.
+ :type ransomware_report_name: str
+ :param body: Clear suspects request object supplied in the body of the operation. Is either a
+ RansomwareSuspectsClearRequest type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.RansomwareSuspectsClearRequest or
+ ~azure.mgmt.netapp.types.RansomwareSuspectsClearRequest or IO[bytes]
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[None] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._resync_replication_initial(
+ raw_result = self._clear_suspects_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ ransomware_report_name=ransomware_report_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -8897,9 +17097,41 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- def _delete_replication_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> Iterator[bytes]:
+
+class BackupVaultsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`backup_vaults` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def get(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ ) -> _models.BackupVault:
+ """Get the Backup Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :return: BackupVault. The BackupVault is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.BackupVault
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -8911,15 +17143,90 @@ def _delete_replication_initial(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
+ cls: ClsType[_models.BackupVault] = kwargs.pop("cls", None)
+
+ _request = build_backup_vaults_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.BackupVault, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: Union[_models.BackupVault, _types.BackupVault, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_delete_replication_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_backup_vaults_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_vault_name=backup_vault_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -8936,7 +17243,7 @@ def _delete_replication_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [200, 201]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -8949,8 +17256,10 @@ def _delete_replication_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -8960,39 +17269,141 @@ def _delete_replication_initial(
return deserialized # type: ignore
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: _models.BackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupVault]:
+ """Create or update the specified Backup Vault in the NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param body: BackupVault object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.BackupVault
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: _types.BackupVault,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupVault]:
+ """Create or update the specified Backup Vault in the NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param body: BackupVault object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.BackupVault
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupVault]:
+ """Create or update the specified Backup Vault in the NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param body: BackupVault object supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
@distributed_trace
- def begin_delete_replication(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> LROPoller[None]:
- """Delete the replication connection on the destination volume, and send release to the source
- replication.
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: Union[_models.BackupVault, _types.BackupVault, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.BackupVault]:
+ """Create or update the specified Backup Vault in the NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param body: BackupVault object supplied in the body of the operation. Is either a BackupVault
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.BackupVault or ~azure.mgmt.netapp.types.BackupVault or
+ IO[bytes]
+ :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[None] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.BackupVault] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_replication_initial(
+ raw_result = self._create_or_update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_vault_name=backup_vault_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -9001,9 +17412,12 @@ def begin_delete_replication(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.BackupVault, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -9018,21 +17432,22 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.BackupVault].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ return LROPoller[_models.BackupVault](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
- def _authorize_replication_initial(
+ def _update_initial(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.AuthorizeRequest, _types.AuthorizeRequest, IO[bytes]],
+ backup_vault_name: str,
+ body: Union[_models.BackupVaultPatch, _types.BackupVaultPatch, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -9056,11 +17471,10 @@ def _authorize_replication_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_volumes_authorize_replication_request(
+ _request = build_backup_vaults_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_vault_name=backup_vault_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -9106,147 +17520,138 @@ def _authorize_replication_initial(
return deserialized # type: ignore
@overload
- def begin_authorize_replication(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: _models.AuthorizeRequest,
+ backup_vault_name: str,
+ body: _models.BackupVaultPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Authorize the replication connection on the source volume.
+ ) -> LROPoller[_models.BackupVault]:
+ """Patch the specified NetApp Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Authorize request object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.AuthorizeRequest
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param body: Backup Vault object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.BackupVaultPatch
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_authorize_replication(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- body: _types.AuthorizeRequest,
+ backup_vault_name: str,
+ body: _types.BackupVaultPatch,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Authorize the replication connection on the source volume.
+ ) -> LROPoller[_models.BackupVault]:
+ """Patch the specified NetApp Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Authorize request object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.AuthorizeRequest
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param body: Backup Vault object supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.BackupVaultPatch
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_authorize_replication(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
+ backup_vault_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Authorize the replication connection on the source volume.
+ ) -> LROPoller[_models.BackupVault]:
+ """Patch the specified NetApp Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Authorize request object supplied in the body of the operation. Required.
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param body: Backup Vault object supplied in the body of the operation. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
- def begin_authorize_replication(
+ def begin_update(
self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.AuthorizeRequest, _types.AuthorizeRequest, IO[bytes]],
+ resource_group_name: str,
+ account_name: str,
+ backup_vault_name: str,
+ body: Union[_models.BackupVaultPatch, _types.BackupVaultPatch, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[None]:
- """Authorize the replication connection on the source volume.
+ ) -> LROPoller[_models.BackupVault]:
+ """Patch the specified NetApp Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Authorize request object supplied in the body of the operation. Is either a
- AuthorizeRequest type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.AuthorizeRequest or
- ~azure.mgmt.netapp.types.AuthorizeRequest or IO[bytes]
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
+ :param body: Backup Vault object supplied in the body of the operation. Is either a
+ BackupVaultPatch type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.BackupVaultPatch or
+ ~azure.mgmt.netapp.types.BackupVaultPatch or IO[bytes]
+ :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[_models.BackupVault] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._authorize_replication_initial(
+ raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_vault_name=backup_vault_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -9257,9 +17662,12 @@ def begin_authorize_replication(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.BackupVault, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -9274,16 +17682,18 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.BackupVault].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ return LROPoller[_models.BackupVault](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
- def _re_initialize_replication_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ def _delete_initial(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -9298,11 +17708,10 @@ def _re_initialize_replication_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_re_initialize_replication_request(
+ _request = build_backup_vaults_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_vault_name=backup_vault_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -9321,7 +17730,7 @@ def _re_initialize_replication_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -9346,20 +17755,18 @@ def _re_initialize_replication_initial(
return deserialized # type: ignore
@distributed_trace
- def begin_re_initialize_replication(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ def begin_delete(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
) -> LROPoller[None]:
- """Re-Initializes the replication connection on the destination volume.
+ """Delete the specified Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param account_name: The name of the NetApp account. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
+ :param backup_vault_name: The name of the Backup Vault. Required.
+ :type backup_vault_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -9372,11 +17779,10 @@ def begin_re_initialize_replication(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._re_initialize_replication_initial(
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
+ backup_vault_name=backup_vault_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -9410,17 +17816,26 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- def _peer_external_cluster_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[
- _models.PeerClusterForVolumeMigrationRequest, _types.PeerClusterForVolumeMigrationRequest, IO[bytes]
- ],
- **kwargs: Any
- ) -> Iterator[bytes]:
+ @distributed_trace
+ def list_by_net_app_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.BackupVault"]:
+ """List and describe all Backup Vaults in the NetApp account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :return: An iterator like instance of BackupVault
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.BackupVault]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.BackupVault]] = kwargs.pop("cls", None)
+
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -9429,186 +17844,136 @@ def _peer_external_cluster_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
-
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
-
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
-
- _request = build_volumes_peer_external_cluster_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- content_type=content_type,
- api_version=self._config.api_version,
- content=_content,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ def prepare_request(next_link=None):
+ if not next_link:
- _decompress = kwargs.pop("decompress", True)
- _stream = True
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
+ _request = build_backup_vaults_list_by_net_app_account_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- response = pipeline_response.http_response
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- if response.status_code not in [200, 202]:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+ return _request
- response_headers = {}
- if response.status_code == 202:
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.BackupVault],
+ deserialized.get("value", []),
)
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
-
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
- return deserialized # type: ignore
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
- @overload
- def begin_peer_external_cluster(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: _models.PeerClusterForVolumeMigrationRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.ClusterPeerCommandResponse]:
- """Starts peering the external cluster for this migration volume.
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Cluster peer request object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.PeerClusterForVolumeMigrationRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns ClusterPeerCommandResponse. The
- ClusterPeerCommandResponse is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ClusterPeerCommandResponse]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- @overload
- def begin_peer_external_cluster(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: _types.PeerClusterForVolumeMigrationRequest,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.ClusterPeerCommandResponse]:
- """Starts peering the external cluster for this migration volume.
+ return pipeline_response
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Cluster peer request object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.PeerClusterForVolumeMigrationRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns ClusterPeerCommandResponse. The
- ClusterPeerCommandResponse is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ClusterPeerCommandResponse]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ return ItemPaged(get_next, extract_data)
- @overload
- def begin_peer_external_cluster(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.ClusterPeerCommandResponse]:
- """Starts peering the external cluster for this migration volume.
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Cluster peer request object supplied in the body of the operation. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns ClusterPeerCommandResponse. The
- ClusterPeerCommandResponse is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ClusterPeerCommandResponse]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+class BucketsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`buckets` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
@distributed_trace
- def begin_peer_external_cluster(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Union[
- _models.PeerClusterForVolumeMigrationRequest, _types.PeerClusterForVolumeMigrationRequest, IO[bytes]
- ],
+ bucket_name: str,
**kwargs: Any
- ) -> LROPoller[_models.ClusterPeerCommandResponse]:
- """Starts peering the external cluster for this migration volume.
+ ) -> _models.Bucket:
+ """Get the details of the specified volume's bucket. A bucket allows additional services, such as
+ AI services, connect to the volume data contained in those buckets.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -9619,78 +17984,108 @@ def begin_peer_external_cluster(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Cluster peer request object supplied in the body of the operation. Is either a
- PeerClusterForVolumeMigrationRequest type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.PeerClusterForVolumeMigrationRequest or
- ~azure.mgmt.netapp.types.PeerClusterForVolumeMigrationRequest or IO[bytes]
- :return: An instance of LROPoller that returns ClusterPeerCommandResponse. The
- ClusterPeerCommandResponse is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ClusterPeerCommandResponse]
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :return: Bucket. The Bucket is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.Bucket
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
-
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.ClusterPeerCommandResponse] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._peer_external_cluster_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- body=body,
- content_type=content_type,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
- def get_long_running_output(pipeline_response):
- response_headers = {}
- response = pipeline_response.http_response
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
- deserialized = _deserialize(_models.ClusterPeerCommandResponse, response.json())
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
- return deserialized
+ cls: ClsType[_models.Bucket] = kwargs.pop("cls", None)
+ _request = build_buckets_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ bucket_name=bucket_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
)
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- polling_method = polling
- if cont_token:
- return LROPoller[_models.ClusterPeerCommandResponse].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[_models.ClusterPeerCommandResponse](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ deserialized = _deserialize(_models.Bucket, response.json())
- def _authorize_external_replication_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: Union[_models.Bucket, _types.Bucket, IO[bytes]],
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -9700,18 +18095,29 @@ def _authorize_external_replication_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_authorize_external_replication_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_buckets_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -9728,7 +18134,7 @@ def _authorize_external_replication_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [200, 201]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -9741,11 +18147,10 @@ def _authorize_external_replication_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 202:
+ if response.status_code == 201:
response_headers["Azure-AsyncOperation"] = self._deserialize(
"str", response.headers.get("Azure-AsyncOperation")
)
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -9755,12 +18160,163 @@ def _authorize_external_replication_initial(
return deserialized # type: ignore
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: _models.Bucket,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Bucket]:
+ """Creates or updates a bucket for a volume. A bucket allows additional services, such as AI
+ services, connect to the volume data contained in those buckets.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket details including user details, and the volume path that should be
+ mounted inside the bucket. Required.
+ :type body: ~azure.mgmt.netapp.models.Bucket
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: _types.Bucket,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Bucket]:
+ """Creates or updates a bucket for a volume. A bucket allows additional services, such as AI
+ services, connect to the volume data contained in those buckets.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket details including user details, and the volume path that should be
+ mounted inside the bucket. Required.
+ :type body: ~azure.mgmt.netapp.types.Bucket
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Bucket]:
+ """Creates or updates a bucket for a volume. A bucket allows additional services, such as AI
+ services, connect to the volume data contained in those buckets.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket details including user details, and the volume path that should be
+ mounted inside the bucket. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
@distributed_trace
- def begin_authorize_external_replication(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> LROPoller[_models.SvmPeerCommandResponse]:
- """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.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: Union[_models.Bucket, _types.Bucket, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.Bucket]:
+ """Creates or updates a bucket for a volume. A bucket allows additional services, such as AI
+ services, connect to the volume data contained in those buckets.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -9771,24 +18327,33 @@ def begin_authorize_external_replication(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :return: An instance of LROPoller that returns SvmPeerCommandResponse. The
- SvmPeerCommandResponse is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SvmPeerCommandResponse]
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket details including user details, and the volume path that should be
+ mounted inside the bucket. Is either a Bucket type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.Bucket or ~azure.mgmt.netapp.types.Bucket or IO[bytes]
+ :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.SvmPeerCommandResponse] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.Bucket] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._authorize_external_replication_initial(
+ raw_result = self._create_or_update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -9798,17 +18363,10 @@ def begin_authorize_external_replication(
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- response_headers = {}
response = pipeline_response.http_response
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = _deserialize(_models.SvmPeerCommandResponse, response.json())
+ deserialized = _deserialize(_models.Bucket, response.json())
if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
path_format_arguments = {
@@ -9824,18 +18382,52 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.SvmPeerCommandResponse].from_continuation_token(
+ return LROPoller[_models.Bucket].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.SvmPeerCommandResponse](
+ return LROPoller[_models.Bucket](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _finalize_external_replication_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: Union[_models.BucketPatch, _types.BucketPatch, IO[bytes]],
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -9845,18 +18437,29 @@ def _finalize_external_replication_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_finalize_external_replication_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_buckets_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -9873,7 +18476,7 @@ def _finalize_external_replication_initial(
response = pipeline_response.http_response
- if response.status_code not in [202]:
+ if response.status_code not in [200, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -9886,8 +18489,12 @@ def _finalize_external_replication_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -9896,12 +18503,159 @@ def _finalize_external_replication_initial(
return deserialized # type: ignore
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: _models.BucketPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Bucket]:
+ """Updates the details of a volume bucket.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket details including user details, and the volume path that should be
+ mounted inside the bucket. Required.
+ :type body: ~azure.mgmt.netapp.models.BucketPatch
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: _types.BucketPatch,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Bucket]:
+ """Updates the details of a volume bucket.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket details including user details, and the volume path that should be
+ mounted inside the bucket. Required.
+ :type body: ~azure.mgmt.netapp.types.BucketPatch
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Bucket]:
+ """Updates the details of a volume bucket.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket details including user details, and the volume path that should be
+ mounted inside the bucket. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
@distributed_trace
- def begin_finalize_external_replication(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> LROPoller[None]:
- """Finalizes the migration of an external volume by releasing the replication and breaking the
- external cluster peering if no other migration is active.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ body: Union[_models.BucketPatch, _types.BucketPatch, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.Bucket]:
+ """Updates the details of a volume bucket.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -9912,23 +18666,34 @@ def begin_finalize_external_replication(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket details including user details, and the volume path that should be
+ mounted inside the bucket. Is either a BucketPatch type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.BucketPatch or ~azure.mgmt.netapp.types.BucketPatch or
+ IO[bytes]
+ :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[None] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.Bucket] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._finalize_external_replication_initial(
+ raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -9937,9 +18702,12 @@ def begin_finalize_external_replication(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Bucket, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -9954,16 +18722,49 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.Bucket].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ return LROPoller[_models.Bucket](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
- def _perform_replication_transfer_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _delete_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -9978,11 +18779,12 @@ def _perform_replication_transfer_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_perform_replication_transfer_request(
+ _request = build_buckets_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -10001,7 +18803,7 @@ def _perform_replication_transfer_initial(
response = pipeline_response.http_response
- if response.status_code not in [202]:
+ if response.status_code not in [202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -10014,8 +18816,12 @@ def _perform_replication_transfer_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -10025,10 +18831,41 @@ def _perform_replication_transfer_initial(
return deserialized # type: ignore
@distributed_trace
- def begin_perform_replication_transfer(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_delete(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ **kwargs: Any
) -> LROPoller[None]:
- """Performs an adhoc replication transfer on a volume with volumeType Migration.
+ """Delete a volume's bucket.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10039,6 +18876,8 @@ def begin_perform_replication_transfer(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -10051,11 +18890,12 @@ def begin_perform_replication_transfer(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._perform_replication_transfer_initial(
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -10089,15 +18929,56 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- def _pool_change_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]],
- **kwargs: Any
- ) -> Iterator[bytes]:
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def list(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.Bucket"]:
+ """Describes all buckets belonging to a volume. Buckets allow additional services, such as AI
+ services, connect to the volume data contained in those buckets.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the volume. Required.
+ :type volume_name: str
+ :return: An iterator like instance of Bucket
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Bucket]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.Bucket]] = kwargs.pop("cls", None)
+
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -10106,81 +18987,97 @@ def _pool_change_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
+ def prepare_request(next_link=None):
+ if not next_link:
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+ _request = build_buckets_list_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- _request = build_volumes_pool_change_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- content_type=content_type,
- api_version=self._config.api_version,
- content=_content,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ return _request
- _decompress = kwargs.pop("decompress", True)
- _stream = True
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.Bucket],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
- response = pipeline_response.http_response
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
- if response.status_code not in [200, 202]:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ response = pipeline_response.http_response
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ return pipeline_response
- return deserialized # type: ignore
+ return ItemPaged(get_next, extract_data)
@overload
- def begin_pool_change(
+ def generate_credentials(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: _models.PoolChangeRequest,
+ bucket_name: str,
+ body: _models.BucketCredentialsExpiry,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Moves volume to another pool.
+ ) -> _models.BucketGenerateCredentials:
+ """Generate the access key and secret key used for accessing the specified volume bucket. Also
+ return expiry date and time of key pair (in UTC).
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10191,29 +19088,35 @@ def begin_pool_change(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Move volume to the pool supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.PoolChangeRequest
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket's Access and Secret key pair expiry time expressed as the number of
+ days from now. Required.
+ :type body: ~azure.mgmt.netapp.models.BucketCredentialsExpiry
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with
+ MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_pool_change(
+ def generate_credentials(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: _types.PoolChangeRequest,
+ bucket_name: str,
+ body: _types.BucketCredentialsExpiry,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Moves volume to another pool.
+ ) -> _models.BucketGenerateCredentials:
+ """Generate the access key and secret key used for accessing the specified volume bucket. Also
+ return expiry date and time of key pair (in UTC).
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10224,29 +19127,35 @@ def begin_pool_change(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Move volume to the pool supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.PoolChangeRequest
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket's Access and Secret key pair expiry time expressed as the number of
+ days from now. Required.
+ :type body: ~azure.mgmt.netapp.types.BucketCredentialsExpiry
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with
+ MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_pool_change(
+ def generate_credentials(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
+ bucket_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Moves volume to another pool.
+ ) -> _models.BucketGenerateCredentials:
+ """Generate the access key and secret key used for accessing the specified volume bucket. Also
+ return expiry date and time of key pair (in UTC).
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10257,27 +19166,60 @@ def begin_pool_change(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Move volume to the pool supplied in the body of the operation. Required.
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket's Access and Secret key pair expiry time expressed as the number of
+ days from now. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with
+ MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
- def begin_pool_change(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def generate_credentials(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]],
+ bucket_name: str,
+ body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[None]:
- """Moves volume to another pool.
+ ) -> _models.BucketGenerateCredentials:
+ """Generate the access key and secret key used for accessing the specified volume bucket. Also
+ return expiry date and time of key pair (in UTC).
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10288,70 +19230,121 @@ def begin_pool_change(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Move volume to the pool supplied in the body of the operation. Is either a
- PoolChangeRequest type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.PoolChangeRequest or
- ~azure.mgmt.netapp.types.PoolChangeRequest or IO[bytes]
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The bucket's Access and Secret key pair expiry time expressed as the number of
+ days from now. Is either a BucketCredentialsExpiry type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.BucketCredentialsExpiry or
+ ~azure.mgmt.netapp.types.BucketCredentialsExpiry or IO[bytes]
+ :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with
+ MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials
:raises ~azure.core.exceptions.HttpResponseError:
"""
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[None] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._pool_change_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- body=body,
- content_type=content_type,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
+ cls: ClsType[_models.BucketGenerateCredentials] = kwargs.pop("cls", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
- if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ _request = build_buckets_generate_credentials_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ bucket_name=bucket_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
)
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- polling_method = polling
- if cont_token:
- return LROPoller[None].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ deserialized = _deserialize(_models.BucketGenerateCredentials, response.json())
- def _relocate_initial(
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ "content_type",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _generate_akv_credentials_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[Union[_models.RelocateVolumeRequest, _types.RelocateVolumeRequest, IO[bytes]]] = None,
+ bucket_name: str,
+ body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -10366,24 +19359,21 @@ def _relocate_initial(
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json" if body else None
+ content_type = content_type or "application/json"
_content = None
if isinstance(body, (IOBase, bytes)):
_content = body
else:
- if body is not None:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- else:
- _content = None
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_volumes_relocate_request(
+ _request = build_buckets_generate_akv_credentials_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -10404,7 +19394,7 @@ def _relocate_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -10417,9 +19407,11 @@ def _relocate_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -10429,18 +19421,20 @@ def _relocate_initial(
return deserialized # type: ignore
@overload
- def begin_relocate(
+ def begin_generate_akv_credentials(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[_models.RelocateVolumeRequest] = None,
+ bucket_name: str,
+ body: _models.BucketCredentialsExpiry,
*,
content_type: str = "application/json",
**kwargs: Any
) -> LROPoller[None]:
- """Relocates volume to a new stamp.
+ """Generate the access key and secret key used for accessing the specified volume bucket and store
+ in Azure Key Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10451,8 +19445,10 @@ def begin_relocate(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Relocate volume request. Default value is None.
- :type body: ~azure.mgmt.netapp.models.RelocateVolumeRequest
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.models.BucketCredentialsExpiry
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
@@ -10462,18 +19458,20 @@ def begin_relocate(
"""
@overload
- def begin_relocate(
+ def begin_generate_akv_credentials(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[_types.RelocateVolumeRequest] = None,
+ bucket_name: str,
+ body: _types.BucketCredentialsExpiry,
*,
content_type: str = "application/json",
**kwargs: Any
) -> LROPoller[None]:
- """Relocates volume to a new stamp.
+ """Generate the access key and secret key used for accessing the specified volume bucket and store
+ in Azure Key Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10483,9 +19481,11 @@ def begin_relocate(
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
:param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: Relocate volume request. Default value is None.
- :type body: ~azure.mgmt.netapp.types.RelocateVolumeRequest
+ :type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.types.BucketCredentialsExpiry
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
@@ -10495,18 +19495,20 @@ def begin_relocate(
"""
@overload
- def begin_relocate(
+ def begin_generate_akv_credentials(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[IO[bytes]] = None,
+ bucket_name: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
) -> LROPoller[None]:
- """Relocates volume to a new stamp.
+ """Generate the access key and secret key used for accessing the specified volume bucket and store
+ in Azure Key Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10517,7 +19519,9 @@ def begin_relocate(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Relocate volume request. Default value is None.
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The content of the action request. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
@@ -10528,16 +19532,44 @@ def begin_relocate(
"""
@distributed_trace
- def begin_relocate(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ "content_type",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_generate_akv_credentials(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- body: Optional[Union[_models.RelocateVolumeRequest, _types.RelocateVolumeRequest, IO[bytes]]] = None,
+ bucket_name: str,
+ body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]],
**kwargs: Any
) -> LROPoller[None]:
- """Relocates volume to a new stamp.
+ """Generate the access key and secret key used for accessing the specified volume bucket and store
+ in Azure Key Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10548,10 +19580,12 @@ def begin_relocate(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
- :param body: Relocate volume request. Is either a RelocateVolumeRequest type or a IO[bytes]
- type. Default value is None.
- :type body: ~azure.mgmt.netapp.models.RelocateVolumeRequest or
- ~azure.mgmt.netapp.types.RelocateVolumeRequest or IO[bytes]
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
+ :param body: The content of the action request. Is either a BucketCredentialsExpiry type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.BucketCredentialsExpiry or
+ ~azure.mgmt.netapp.types.BucketCredentialsExpiry or IO[bytes]
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -10560,17 +19594,17 @@ def begin_relocate(
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
cls: ClsType[None] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._relocate_initial(
+ raw_result = self._generate_akv_credentials_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -10606,8 +19640,39 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- def _finalize_relocation_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _refresh_certificate_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -10622,11 +19687,12 @@ def _finalize_relocation_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_finalize_relocation_request(
+ _request = build_buckets_refresh_certificate_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -10645,7 +19711,7 @@ def _finalize_relocation_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -10658,9 +19724,11 @@ def _finalize_relocation_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -10670,10 +19738,42 @@ def _finalize_relocation_initial(
return deserialized # type: ignore
@distributed_trace
- def begin_finalize_relocation(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "bucket_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_refresh_certificate(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ bucket_name: str,
+ **kwargs: Any
) -> LROPoller[None]:
- """Finalizes the relocation of the volume and cleans up the old volume.
+ """This operation will fetch the certificate from Azure Key Vault and install it on the bucket
+ server.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10684,6 +19784,8 @@ def begin_finalize_relocation(
:type pool_name: str
:param volume_name: The name of the volume. Required.
:type volume_name: str
+ :param bucket_name: The name of the bucket. Required.
+ :type bucket_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -10696,11 +19798,12 @@ def begin_finalize_relocation(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._finalize_relocation_initial(
+ raw_result = self._refresh_certificate_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
+ bucket_name=bucket_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -10717,25 +19820,178 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+
+class CachesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`caches` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(
+ self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
+ ) -> _models.Cache:
+ """Get the details of the specified Cache.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :return: Cache. The Cache is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.Cache
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
+
+ _request = build_caches_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ cache_name=cache_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
)
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- polling_method = polling
- if cont_token:
- return LROPoller[None].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ deserialized = _deserialize(_models.Cache, response.json())
- def _revert_relocation_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: Union[_models.Cache, _types.Cache, IO[bytes]],
+ **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -10745,18 +20001,28 @@ def _revert_relocation_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volumes_revert_relocation_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_caches_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
+ cache_name=cache_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -10773,7 +20039,7 @@ def _revert_relocation_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [200, 201]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -10786,8 +20052,10 @@ def _revert_relocation_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -10797,12 +20065,145 @@ def _revert_relocation_initial(
return deserialized # type: ignore
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: _models.Cache,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Cache]:
+ """Create or update the specified Cache within the Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.Cache
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: _types.Cache,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Cache]:
+ """Create or update the specified Cache within the Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.Cache
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Cache]:
+ """Create or update the specified Cache within the Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
@distributed_trace
- def begin_revert_relocation(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> LROPoller[None]:
- """Reverts the volume relocation process, cleans up the new volume and starts using the
- former-existing volume.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: Union[_models.Cache, _types.Cache, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.Cache]:
+ """Create or update the specified Cache within the Capacity Pool.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10811,25 +20212,31 @@ def begin_revert_relocation(
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: Resource create parameters. Is either a Cache type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.Cache or ~azure.mgmt.netapp.types.Cache or IO[bytes]
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[None] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._revert_relocation_initial(
+ raw_result = self._create_or_update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
+ cache_name=cache_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -10838,9 +20245,12 @@ def begin_revert_relocation(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Cache, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -10855,30 +20265,31 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.Cache].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ return LROPoller[_models.Cache](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
@api_version_validation(
- method_added_on="2025-12-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2025-12-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
"account_name",
"pool_name",
- "volume_name",
+ "cache_name",
"content_type",
"accept",
]
},
api_versions_list=[
- "2025-12-01",
"2025-12-15-preview",
"2026-01-01",
"2026-01-15-preview",
@@ -10887,15 +20298,16 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
- def _list_quota_report_initial(
+ def _update_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- body: Optional[Union[_models.QuotaReportFilterRequest, _types.QuotaReportFilterRequest, IO[bytes]]] = None,
+ cache_name: str,
+ body: Union[_models.CacheUpdate, _types.CacheUpdate, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -10910,24 +20322,20 @@ def _list_quota_report_initial(
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json" if body else None
+ content_type = content_type or "application/json"
_content = None
if isinstance(body, (IOBase, bytes)):
_content = body
else:
- if body is not None:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- else:
- _content = None
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_volumes_list_quota_report_request(
+ _request = build_caches_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
+ cache_name=cache_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -10976,18 +20384,18 @@ def _list_quota_report_initial(
return deserialized # type: ignore
@overload
- def begin_list_quota_report(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- body: Optional[_models.QuotaReportFilterRequest] = None,
+ cache_name: str,
+ body: _models.CacheUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.ListQuotaReportResult]:
- """Get quota report for volume (with filter support).
+ ) -> LROPoller[_models.Cache]:
+ """Patch the specified Cache.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -10996,32 +20404,32 @@ def begin_list_quota_report(
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: The content of the action request. Default value is None.
- :type body: ~azure.mgmt.netapp.models.QuotaReportFilterRequest
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.CacheUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns ListQuotaReportResult. The ListQuotaReportResult
- is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ListQuotaReportResult]
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_list_quota_report(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- body: Optional[_types.QuotaReportFilterRequest] = None,
+ cache_name: str,
+ body: _types.CacheUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.ListQuotaReportResult]:
- """Get quota report for volume (with filter support).
+ ) -> LROPoller[_models.Cache]:
+ """Patch the specified Cache.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -11030,32 +20438,32 @@ def begin_list_quota_report(
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: The content of the action request. Default value is None.
- :type body: ~azure.mgmt.netapp.types.QuotaReportFilterRequest
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.CacheUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns ListQuotaReportResult. The ListQuotaReportResult
- is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ListQuotaReportResult]
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_list_quota_report(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- body: Optional[IO[bytes]] = None,
+ cache_name: str,
+ body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.ListQuotaReportResult]:
- """Get quota report for volume (with filter support).
+ ) -> LROPoller[_models.Cache]:
+ """Patch the specified Cache.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -11064,36 +20472,35 @@ def begin_list_quota_report(
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: The content of the action request. Default value is None.
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: The resource properties to be updated. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns ListQuotaReportResult. The ListQuotaReportResult
- is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ListQuotaReportResult]
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
@api_version_validation(
- method_added_on="2025-12-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2025-12-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
"account_name",
"pool_name",
- "volume_name",
+ "cache_name",
"content_type",
"accept",
]
},
api_versions_list=[
- "2025-12-01",
"2025-12-15-preview",
"2026-01-01",
"2026-01-15-preview",
@@ -11102,128 +20509,19 @@ def begin_list_quota_report(
"2026-04-01",
"2026-04-15-preview",
"2026-05-01",
+ "2026-05-15-preview",
],
)
- def begin_list_quota_report(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- body: Optional[Union[_models.QuotaReportFilterRequest, _types.QuotaReportFilterRequest, IO[bytes]]] = None,
- **kwargs: Any
- ) -> LROPoller[_models.ListQuotaReportResult]:
- """Get quota report for volume (with filter support).
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param body: The content of the action request. Is either a QuotaReportFilterRequest type or a
- IO[bytes] type. Default value is None.
- :type body: ~azure.mgmt.netapp.models.QuotaReportFilterRequest or
- ~azure.mgmt.netapp.types.QuotaReportFilterRequest or IO[bytes]
- :return: An instance of LROPoller that returns ListQuotaReportResult. The ListQuotaReportResult
- is compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ListQuotaReportResult]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
-
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- content_type = content_type if body else None
- cls: ClsType[_models.ListQuotaReportResult] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._list_quota_report_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- body=body,
- content_type=content_type,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
-
- def get_long_running_output(pipeline_response):
- response_headers = {}
- response = pipeline_response.http_response
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = _deserialize(_models.ListQuotaReportResult, response.json())
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
- return deserialized
-
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
-
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
- )
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
- else:
- polling_method = polling
- if cont_token:
- return LROPoller[_models.ListQuotaReportResult].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[_models.ListQuotaReportResult](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
-
-
-class SnapshotsOperations:
- """
- .. warning::
- **DO NOT** instantiate this class directly.
-
- Instead, you should access the following operations through
- :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`snapshots` attribute.
- """
-
- def __init__(self, *args, **kwargs) -> None:
- input_args = list(args)
- self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
- self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
- self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
- self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
-
- @distributed_trace
- def get(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- snapshot_name: str,
+ cache_name: str,
+ body: Union[_models.CacheUpdate, _types.CacheUpdate, IO[bytes]],
**kwargs: Any
- ) -> _models.Snapshot:
- """Get details of the specified snapshot.
+ ) -> LROPoller[_models.Cache]:
+ """Patch the specified Cache.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -11232,83 +20530,97 @@ def get(
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :return: Snapshot. The Snapshot is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.Snapshot
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: The resource properties to be updated. Is either a CacheUpdate type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.CacheUpdate or ~azure.mgmt.netapp.types.CacheUpdate or
+ IO[bytes]
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.Snapshot] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ cache_name=cache_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Cache, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
- _request = build_snapshots_get_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- _decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
-
- response = pipeline_response.http_response
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
)
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
else:
- deserialized = _deserialize(_models.Snapshot, response.json())
-
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
-
- return deserialized # type: ignore
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.Cache].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.Cache](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
- def _create_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Union[_models.Snapshot, _types.Snapshot, IO[bytes]],
- **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _delete_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -11318,29 +20630,18 @@ def _create_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
-
- _request = build_snapshots_create_request(
+ _request = build_caches_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
+ cache_name=cache_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -11357,7 +20658,7 @@ def _create_initial(
response = pipeline_response.http_response
- if response.status_code not in [201, 202]:
+ if response.status_code not in [202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -11365,144 +20666,51 @@ def _create_initial(
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- response_headers = {}
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
-
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
-
- return deserialized # type: ignore
-
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: _models.Snapshot,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.Snapshot]:
- """Create the specified snapshot within the given volume.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Snapshot object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.Snapshot
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: _types.Snapshot,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.Snapshot]:
- """Create the specified snapshot within the given volume.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Snapshot object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.Snapshot
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.Snapshot]:
- """Create the specified snapshot within the given volume.
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Snapshot object supplied in the body of the operation. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Union[_models.Snapshot, _types.Snapshot, IO[bytes]],
- **kwargs: Any
- ) -> LROPoller[_models.Snapshot]:
- """Create the specified snapshot within the given volume.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_delete(
+ self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Delete the specified cache.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -11511,36 +20719,25 @@ def begin_create(
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Snapshot object supplied in the body of the operation. Is either a Snapshot type
- or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.Snapshot or ~azure.mgmt.netapp.types.Snapshot or
- IO[bytes]
- :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Snapshot] = kwargs.pop("cls", None)
+ cls: ClsType[None] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._create_initial(
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
- body=body,
- content_type=content_type,
+ cache_name=cache_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -11549,16 +20746,9 @@ def begin_create(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response):
- response_headers = {}
- response = pipeline_response.http_response
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = _deserialize(_models.Snapshot, response.json())
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
- return deserialized
+ return cls(pipeline_response, None, {}) # type: ignore
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -11573,26 +20763,187 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Snapshot].from_continuation_token(
+ return LROPoller[None].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Snapshot](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2026-01-01",
+ params_added_on={
+ "2026-01-01": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def list(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.Cache"]:
+ """List all Caches within the Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :return: An iterator like instance of Cache
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Cache]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.Cache]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_caches_list_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.Cache],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_peering_passphrases(
+ self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
+ ) -> _models.PeeringPassphrases:
+ """This operation will list the cluster peering command, cluster peering passphrase and the
+ vserver peering command.
- def _update_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Union[_models.SnapshotPatch, _types.SnapshotPatch, IO[bytes]],
- **kwargs: Any
- ) -> Iterator[bytes]:
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :return: PeeringPassphrases. The PeeringPassphrases is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.PeeringPassphrases
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -11601,29 +20952,18 @@ def _update_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
-
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ cls: ClsType[_models.PeeringPassphrases] = kwargs.pop("cls", None)
- _request = build_snapshots_update_request(
+ _request = build_caches_list_peering_passphrases_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
+ cache_name=cache_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -11633,243 +20973,69 @@ def _update_initial(
_request.url = self._client.format_url(_request.url, **path_format_arguments)
_decompress = kwargs.pop("decompress", True)
- _stream = True
+ _stream = kwargs.pop("stream", False)
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
response,
)
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
-
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
-
- return deserialized # type: ignore
-
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: _models.SnapshotPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.Snapshot]:
- """Patch a snapshot.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Snapshot object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.SnapshotPatch
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: _types.SnapshotPatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.Snapshot]:
- """Patch a snapshot.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Snapshot object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.SnapshotPatch
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.Snapshot]:
- """Patch a snapshot.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Snapshot object supplied in the body of the operation. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @distributed_trace
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Union[_models.SnapshotPatch, _types.SnapshotPatch, IO[bytes]],
- **kwargs: Any
- ) -> LROPoller[_models.Snapshot]:
- """Patch a snapshot.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Snapshot object supplied in the body of the operation. Is either a SnapshotPatch
- type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.SnapshotPatch or ~azure.mgmt.netapp.types.SnapshotPatch
- or IO[bytes]
- :return: An instance of LROPoller that returns Snapshot. The Snapshot is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Snapshot]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
- _params = kwargs.pop("params", {}) or {}
-
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Snapshot] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._update_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
- body=body,
- content_type=content_type,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- def get_long_running_output(pipeline_response):
- response = pipeline_response.http_response
- deserialized = _deserialize(_models.Snapshot, response.json())
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.PeeringPassphrases, response.json())
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
- )
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
- else:
- polling_method = polling
- if cont_token:
- return LROPoller[_models.Snapshot].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[_models.Snapshot](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ return deserialized # type: ignore
- def _delete_initial(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _pool_change_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- snapshot_name: str,
+ cache_name: str,
+ body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -11880,19 +21046,28 @@ def _delete_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_snapshots_delete_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_caches_pool_change_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
+ cache_name=cache_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -11909,7 +21084,7 @@ def _delete_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202, 204]:
+ if response.status_code not in [200, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -11933,17 +21108,145 @@ def _delete_initial(
return deserialized # type: ignore
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: _models.PoolChangeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Cache]:
+ """Moves Cache to another Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: Move cache to the pool supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.models.PoolChangeRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: _types.PoolChangeRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Cache]:
+ """Moves Cache to another Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: Move cache to the pool supplied in the body of the operation. Required.
+ :type body: ~azure.mgmt.netapp.types.PoolChangeRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_pool_change(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ cache_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.Cache]:
+ """Moves Cache to another Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :param pool_name: The name of the capacity pool. Required.
+ :type pool_name: str
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: Move cache to the pool supplied in the body of the operation. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
@distributed_trace
- def begin_delete(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_pool_change(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
- volume_name: str,
- snapshot_name: str,
+ cache_name: str,
+ body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[None]:
- """Delete snapshot.
+ ) -> LROPoller[_models.Cache]:
+ """Moves Cache to another Capacity Pool.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -11952,28 +21255,33 @@ def begin_delete(
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :param body: Move cache to the pool supplied in the body of the operation. Is either a
+ PoolChangeRequest type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.PoolChangeRequest or
+ ~azure.mgmt.netapp.types.PoolChangeRequest or IO[bytes]
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[None] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial(
+ raw_result = self._pool_change_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
+ cache_name=cache_name,
+ body=body,
+ content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -11982,9 +21290,12 @@ def begin_delete(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Cache, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -11999,131 +21310,43 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.Cache].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
-
- @distributed_trace
- def list(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> ItemPaged["_models.Snapshot"]:
- """List all snapshots associated with the volume.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: An iterator like instance of Snapshot
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Snapshot]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
-
- cls: ClsType[List[_models.Snapshot]] = kwargs.pop("cls", None)
-
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
- def prepare_request(next_link=None):
- if not next_link:
-
- _request = build_snapshots_list_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- else:
- # make call to next link with the client's api-version
- _parsed_next_link = urllib.parse.urlparse(next_link)
- _next_request_params = case_insensitive_dict(
- {
- key: [urllib.parse.quote(v) for v in value]
- for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
- }
- )
- _next_request_params["api-version"] = self._config.api_version
- _request = HttpRequest(
- "GET",
- urllib.parse.urljoin(next_link, _parsed_next_link.path),
- headers=_headers,
- params=_next_request_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- return _request
-
- def extract_data(pipeline_response):
- deserialized = pipeline_response.http_response.json()
- list_of_elem = _deserialize(
- List[_models.Snapshot],
- deserialized.get("value", []),
- )
- if cls:
- list_of_elem = cls(list_of_elem) # type: ignore
- return deserialized.get("nextLink") or None, iter(list_of_elem)
-
- def get_next(next_link=None):
- _request = prepare_request(next_link)
-
- _stream = False
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
- response = pipeline_response.http_response
-
- if response.status_code not in [200]:
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- return pipeline_response
-
- return ItemPaged(get_next, extract_data)
+ return LROPoller[_models.Cache](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
- def _restore_files_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Union[_models.SnapshotRestoreFiles, _types.SnapshotRestoreFiles, IO[bytes]],
- **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def _reset_smb_password_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -12133,29 +21356,18 @@ def _restore_files_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
-
- _request = build_snapshots_restore_files_request(
+ _request = build_caches_reset_smb_password_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
+ cache_name=cache_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -12177,145 +21389,55 @@ def _restore_files_initial(
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
-
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
-
- return deserialized # type: ignore
-
- @overload
- def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: _models.SnapshotRestoreFiles,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Restore the specified files from the specified snapshot to the active filesystem.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Restore payload supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.SnapshotRestoreFiles
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: _types.SnapshotRestoreFiles,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Restore the specified files from the specified snapshot to the active filesystem.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Restore payload supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.SnapshotRestoreFiles
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- @overload
- def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Restore the specified files from the specified snapshot to the active filesystem.
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Restore payload supplied in the body of the operation. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
- def begin_restore_files(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- snapshot_name: str,
- body: Union[_models.SnapshotRestoreFiles, _types.SnapshotRestoreFiles, IO[bytes]],
- **kwargs: Any
- ) -> LROPoller[None]:
- """Restore the specified files from the specified snapshot to the active filesystem.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "cache_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-01",
+ "2026-01-15-preview",
+ "2026-03-01",
+ "2026-03-15-preview",
+ "2026-04-01",
+ "2026-04-15-preview",
+ "2026-05-01",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_reset_smb_password(
+ self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
+ ) -> LROPoller[_models.Cache]:
+ """Resets the SMB password for the cache.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -12324,35 +21446,26 @@ def begin_restore_files(
:type account_name: str
:param pool_name: The name of the capacity pool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param snapshot_name: The name of the snapshot. Required.
- :type snapshot_name: str
- :param body: Restore payload supplied in the body of the operation. Is either a
- SnapshotRestoreFiles type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.SnapshotRestoreFiles or
- ~azure.mgmt.netapp.types.SnapshotRestoreFiles or IO[bytes]
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param cache_name: The name of the cache resource. Required.
+ :type cache_name: str
+ :return: An instance of LROPoller that returns Cache. The Cache is compatible with
+ MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._restore_files_initial(
+ raw_result = self._reset_smb_password_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
- volume_name=volume_name,
- snapshot_name=snapshot_name,
- body=body,
- content_type=content_type,
+ cache_name=cache_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -12361,9 +21474,12 @@ def begin_restore_files(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.Cache, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -12378,23 +21494,25 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.Cache].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ return LROPoller[_models.Cache](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
-class SnapshotPoliciesOperations:
+class ElasticAccountsOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`snapshot_policies` attribute.
+ :attr:`elastic_accounts` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
@@ -12405,20 +21523,29 @@ def __init__(self, *args, **kwargs) -> None:
self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
@distributed_trace
- def get(
- self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
- ) -> _models.SnapshotPolicy:
- """Get a snapshot Policy.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(self, resource_group_name: str, account_name: str, **kwargs: Any) -> _models.ElasticAccount:
+ """Get the NetApp Elastic Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
+ :return: ElasticAccount. The ElasticAccount is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticAccount
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map: MutableMapping = {
@@ -12432,12 +21559,11 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticAccount] = kwargs.pop("cls", None)
- _request = build_snapshot_policies_get_request(
+ _request = build_elastic_accounts_get_request(
resource_group_name=resource_group_name,
account_name=account_name,
- snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -12472,203 +21598,315 @@ def get(
if _stream:
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- deserialized = _deserialize(_models.SnapshotPolicy, response.json())
+ deserialized = _deserialize(_models.ElasticAccount, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ body: Union[_models.ElasticAccount, _types.ElasticAccount, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_accounts_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
@overload
- def create(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: _models.SnapshotPolicy,
+ body: _models.ElasticAccount,
*,
content_type: str = "application/json",
- **kwargs: Any
- ) -> _models.SnapshotPolicy:
- """Create a snapshot policy.
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticAccount]:
+ """Create or update the specified NetApp Elastic Account within the resource group.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :param body: Snapshot policy object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.SnapshotPolicy
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticAccount
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
+ :return: An instance of LROPoller that returns ElasticAccount. The ElasticAccount is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def create(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: _types.SnapshotPolicy,
+ body: _types.ElasticAccount,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> _models.SnapshotPolicy:
- """Create a snapshot policy.
+ ) -> LROPoller[_models.ElasticAccount]:
+ """Create or update the specified NetApp Elastic Account within the resource group.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :param body: Snapshot policy object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.SnapshotPolicy
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticAccount
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
+ :return: An instance of LROPoller that returns ElasticAccount. The ElasticAccount is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def create(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> _models.SnapshotPolicy:
- """Create a snapshot policy.
+ ) -> LROPoller[_models.ElasticAccount]:
+ """Create or update the specified NetApp Elastic Account within the resource group.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :param body: Snapshot policy object supplied in the body of the operation. Required.
+ :param body: Resource create parameters. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
+ :return: An instance of LROPoller that returns ElasticAccount. The ElasticAccount is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
- def create(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: Union[_models.SnapshotPolicy, _types.SnapshotPolicy, IO[bytes]],
+ body: Union[_models.ElasticAccount, _types.ElasticAccount, IO[bytes]],
**kwargs: Any
- ) -> _models.SnapshotPolicy:
- """Create a snapshot policy.
+ ) -> LROPoller[_models.ElasticAccount]:
+ """Create or update the specified NetApp Elastic Account within the resource group.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :param body: Snapshot policy object supplied in the body of the operation. Is either a
- SnapshotPolicy type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.SnapshotPolicy or ~azure.mgmt.netapp.types.SnapshotPolicy
+ :param body: Resource create parameters. Is either a ElasticAccount type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticAccount or ~azure.mgmt.netapp.types.ElasticAccount
or IO[bytes]
- :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy
+ :return: An instance of LROPoller that returns ElasticAccount. The ElasticAccount is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticAccount] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticAccount, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
- _request = build_snapshot_policies_create_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- snapshot_policy_name=snapshot_policy_name,
- subscription_id=self._config.subscription_id,
- content_type=content_type,
- api_version=self._config.api_version,
- content=_content,
- headers=_headers,
- params=_params,
- )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- _decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
-
- response = pipeline_response.http_response
- if response.status_code not in [200, 201]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
)
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
else:
- deserialized = _deserialize(_models.SnapshotPolicy, response.json())
-
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
-
- return deserialized # type: ignore
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ElasticAccount].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ElasticAccount](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def _update_initial(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: Union[_models.SnapshotPolicyPatch, _types.SnapshotPolicyPatch, IO[bytes]],
+ body: Union[_models.ElasticAccountUpdate, _types.ElasticAccountUpdate, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -12692,10 +21930,9 @@ def _update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_snapshot_policies_update_request(
+ _request = build_elastic_accounts_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -12730,6 +21967,9 @@ def _update_initial(
response_headers = {}
if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -12745,29 +21985,26 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: _models.SnapshotPolicyPatch,
+ body: _models.ElasticAccountUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.SnapshotPolicy]:
- """Patch a snapshot policy.
+ ) -> LROPoller[_models.ElasticAccount]:
+ """Patch the specified NetApp Elastic Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :param body: Snapshot policy object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.SnapshotPolicyPatch
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticAccountUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns SnapshotPolicy. The SnapshotPolicy is compatible
+ :return: An instance of LROPoller that returns ElasticAccount. The ElasticAccount is compatible
with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -12776,29 +22013,26 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: _types.SnapshotPolicyPatch,
+ body: _types.ElasticAccountUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.SnapshotPolicy]:
- """Patch a snapshot policy.
+ ) -> LROPoller[_models.ElasticAccount]:
+ """Patch the specified NetApp Elastic Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :param body: Snapshot policy object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.SnapshotPolicyPatch
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticAccountUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns SnapshotPolicy. The SnapshotPolicy is compatible
+ :return: An instance of LROPoller that returns ElasticAccount. The ElasticAccount is compatible
with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -12807,64 +22041,78 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.SnapshotPolicy]:
- """Patch a snapshot policy.
+ ) -> LROPoller[_models.ElasticAccount]:
+ """Patch the specified NetApp Elastic Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :param body: Snapshot policy object supplied in the body of the operation. Required.
+ :param body: The resource properties to be updated. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns SnapshotPolicy. The SnapshotPolicy is compatible
+ :return: An instance of LROPoller that returns ElasticAccount. The ElasticAccount is compatible
with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def begin_update(
self,
resource_group_name: str,
account_name: str,
- snapshot_policy_name: str,
- body: Union[_models.SnapshotPolicyPatch, _types.SnapshotPolicyPatch, IO[bytes]],
+ body: Union[_models.ElasticAccountUpdate, _types.ElasticAccountUpdate, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.SnapshotPolicy]:
- """Patch a snapshot policy.
+ ) -> LROPoller[_models.ElasticAccount]:
+ """Patch the specified NetApp Elastic Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :param body: Snapshot policy object supplied in the body of the operation. Is either a
- SnapshotPolicyPatch type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.SnapshotPolicyPatch or
- ~azure.mgmt.netapp.types.SnapshotPolicyPatch or IO[bytes]
- :return: An instance of LROPoller that returns SnapshotPolicy. The SnapshotPolicy is compatible
+ :param body: The resource properties to be updated. Is either a ElasticAccountUpdate type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticAccountUpdate or
+ ~azure.mgmt.netapp.types.ElasticAccountUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticAccount. The ElasticAccount is compatible
with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy]
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticAccount] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -12872,7 +22120,6 @@ def begin_update(
raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- snapshot_policy_name=snapshot_policy_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -12885,7 +22132,7 @@ def begin_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.SnapshotPolicy, response.json())
+ deserialized = _deserialize(_models.ElasticAccount, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -12903,19 +22150,30 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.SnapshotPolicy].from_continuation_token(
+ return LROPoller[_models.ElasticAccount].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.SnapshotPolicy](
+ return LROPoller[_models.ElasticAccount](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial(
- self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
- ) -> Iterator[bytes]:
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _delete_initial(self, resource_group_name: str, account_name: str, **kwargs: Any) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -12929,10 +22187,9 @@ def _delete_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_snapshot_policies_delete_request(
+ _request = build_elastic_accounts_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -12951,7 +22208,7 @@ def _delete_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202, 204]:
+ if response.status_code not in [202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -12976,18 +22233,27 @@ def _delete_initial(
return deserialized # type: ignore
@distributed_trace
- def begin_delete(
- self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
- ) -> LROPoller[None]:
- """Delete snapshot policy.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_delete(self, resource_group_name: str, account_name: str, **kwargs: Any) -> LROPoller[None]:
+ """Delete the specified NetApp elastic account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -13003,7 +22269,6 @@ def begin_delete(
raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- snapshot_policy_name=snapshot_policy_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -13038,22 +22303,31 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
@distributed_trace
- def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> ItemPaged["_models.SnapshotPolicy"]:
- """List snapshot policy.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={"2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "accept"]},
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> ItemPaged["_models.ElasticAccount"]:
+ """List and describe all NetApp elastic accounts in the resource group.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :return: An iterator like instance of SnapshotPolicy
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.SnapshotPolicy]
+ :return: An iterator like instance of ElasticAccount
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticAccount]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[List[_models.SnapshotPolicy]] = kwargs.pop("cls", None)
+ cls: ClsType[List[_models.ElasticAccount]] = kwargs.pop("cls", None)
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -13066,9 +22340,8 @@ def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> It
def prepare_request(next_link=None):
if not next_link:
- _request = build_snapshot_policies_list_request(
+ _request = build_elastic_accounts_list_by_resource_group_request(
resource_group_name=resource_group_name,
- account_name=account_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -13109,7 +22382,111 @@ def prepare_request(next_link=None):
def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = _deserialize(
- List[_models.SnapshotPolicy],
+ List[_models.ElasticAccount],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={"2025-12-15-preview": ["api_version", "subscription_id", "accept"]},
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_subscription(self, **kwargs: Any) -> ItemPaged["_models.ElasticAccount"]:
+ """List and describe all NetApp elastic accounts in the subscription.
+
+ :return: An iterator like instance of ElasticAccount
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticAccount]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticAccount]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_accounts_list_by_subscription_request(
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticAccount],
deserialized.get("value", []),
)
if cls:
@@ -13135,26 +22512,150 @@ def get_next(next_link=None):
return pipeline_response
- return ItemPaged(get_next, extract_data)
+ return ItemPaged(get_next, extract_data)
+
+
+class ElasticCapacityPoolsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`elastic_capacity_pools` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> _models.ElasticCapacityPool:
+ """Get the NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :return: ElasticCapacityPool. The ElasticCapacityPool is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticCapacityPool
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None)
+
+ _request = build_elastic_capacity_pools_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticCapacityPool, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- @distributed_trace
- def list_volumes(
- self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
- ) -> _models.SnapshotPolicyVolumeList:
- """Get volumes associated with snapshot policy.
+ return deserialized # type: ignore
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param snapshot_policy_name: The name of the snapshot policy. Required.
- :type snapshot_policy_name: str
- :return: SnapshotPolicyVolumeList. The SnapshotPolicyVolumeList is compatible with
- MutableMapping
- :rtype: ~azure.mgmt.netapp.models.SnapshotPolicyVolumeList
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ElasticCapacityPool, _types.ElasticCapacityPool, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -13163,17 +22664,27 @@ def list_volumes(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.SnapshotPolicyVolumeList] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_snapshot_policies_list_volumes_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_capacity_pools_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- snapshot_policy_name=snapshot_policy_name,
+ pool_name=pool_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -13183,19 +22694,18 @@ def list_volumes(
_request.url = self._client.format_url(_request.url, **path_format_arguments)
_decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
+ if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
@@ -13203,51 +22713,247 @@ def list_volumes(
)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
- else:
- deserialized = _deserialize(_models.SnapshotPolicyVolumeList, response.json())
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
return deserialized # type: ignore
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _models.ElasticCapacityPool,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Create or update the specified NetApp Elastic Capacity Pool within the resource group and
+ NetApp Elastic Account.
-class BackupPoliciesOperations:
- """
- .. warning::
- **DO NOT** instantiate this class directly.
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticCapacityPool
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
- Instead, you should access the following operations through
- :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`backup_policies` attribute.
- """
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _types.ElasticCapacityPool,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Create or update the specified NetApp Elastic Capacity Pool within the resource group and
+ NetApp Elastic Account.
- def __init__(self, *args, **kwargs) -> None:
- input_args = list(args)
- self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
- self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
- self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
- self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticCapacityPool
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Create or update the specified NetApp Elastic Capacity Pool within the resource group and
+ NetApp Elastic Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
@distributed_trace
- def get(
- self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
- ) -> _models.BackupPolicy:
- """Get a particular backup Policy.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ElasticCapacityPool, _types.ElasticCapacityPool, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Create or update the specified NetApp Elastic Capacity Pool within the resource group and
+ NetApp Elastic Account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :return: BackupPolicy. The BackupPolicy is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.BackupPolicy
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: Resource create parameters. Is either a ElasticCapacityPool type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticCapacityPool or
+ ~azure.mgmt.netapp.types.ElasticCapacityPool or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
:raises ~azure.core.exceptions.HttpResponseError:
"""
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticCapacityPool, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ElasticCapacityPool].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ElasticCapacityPool](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ElasticCapacityPoolUpdate, _types.ElasticCapacityPoolUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -13256,17 +22962,27 @@ def get(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.BackupPolicy] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_backup_policies_get_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_capacity_pools_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_policy_name=backup_policy_name,
+ pool_name=pool_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -13276,19 +22992,18 @@ def get(
_request.url = self._client.format_url(_request.url, **path_format_arguments)
_decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
@@ -13296,23 +23011,230 @@ def get(
)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
- else:
- deserialized = _deserialize(_models.BackupPolicy, response.json())
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
return deserialized # type: ignore
- def _create_initial(
+ @overload
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_policy_name: str,
- body: Union[_models.BackupPolicy, _types.BackupPolicy, IO[bytes]],
+ pool_name: str,
+ body: _models.ElasticCapacityPoolUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Patch the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticCapacityPoolUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _types.ElasticCapacityPoolUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Patch the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticCapacityPoolUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Patch the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[_models.ElasticCapacityPoolUpdate, _types.ElasticCapacityPoolUpdate, IO[bytes]],
**kwargs: Any
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Patch the specified NetApp Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The resource properties to be updated. Is either a ElasticCapacityPoolUpdate type
+ or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticCapacityPoolUpdate or
+ ~azure.mgmt.netapp.types.ElasticCapacityPoolUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticCapacityPool, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ElasticCapacityPool].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ElasticCapacityPool](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "pool_name"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _delete_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -13322,27 +23244,17 @@ def _create_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
-
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_backup_policies_create_request(
+ _request = build_elastic_capacity_pools_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_policy_name=backup_policy_name,
+ pool_name=pool_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -13359,7 +23271,7 @@ def _create_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 201, 202]:
+ if response.status_code not in [202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -13372,12 +23284,6 @@ def _create_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 201:
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -13389,141 +23295,48 @@ def _create_initial(
return deserialized # type: ignore
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: _models.BackupPolicy,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.BackupPolicy]:
- """Create a backup policy for Netapp Account.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :param body: Backup policy object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.BackupPolicy
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
- with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: _types.BackupPolicy,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.BackupPolicy]:
- """Create a backup policy for Netapp Account.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :param body: Backup policy object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.BackupPolicy
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
- with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.BackupPolicy]:
- """Create a backup policy for Netapp Account.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :param body: Backup policy object supplied in the body of the operation. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
- with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
@distributed_trace
- def begin_create(
- self,
- resource_group_name: str,
- account_name: str,
- backup_policy_name: str,
- body: Union[_models.BackupPolicy, _types.BackupPolicy, IO[bytes]],
- **kwargs: Any
- ) -> LROPoller[_models.BackupPolicy]:
- """Create a backup policy for Netapp Account.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "pool_name"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_delete(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Delete the specified NetApp Elastic Capacity Pool.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :param body: Backup policy object supplied in the body of the operation. Is either a
- BackupPolicy type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.BackupPolicy or ~azure.mgmt.netapp.types.BackupPolicy or
- IO[bytes]
- :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
- with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.BackupPolicy] = kwargs.pop("cls", None)
+ cls: ClsType[None] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._create_initial(
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_policy_name=backup_policy_name,
- body=body,
- content_type=content_type,
+ pool_name=pool_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -13532,12 +23345,9 @@ def begin_create(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response):
- response = pipeline_response.http_response
- deserialized = _deserialize(_models.BackupPolicy, response.json())
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
+ return cls(pipeline_response, None, {}) # type: ignore
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -13552,22 +23362,156 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.BackupPolicy].from_continuation_token(
+ return LROPoller[None].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.BackupPolicy](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.ElasticCapacityPool"]:
+ """List and describe all NetApp Elastic Capacity Pools in the Elastic NetApp Account.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :return: An iterator like instance of ElasticCapacityPool
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticCapacityPool]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticCapacityPool]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_capacity_pools_list_by_elastic_account_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticCapacityPool],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
- def _update_initial(
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _change_zone_initial(
self,
resource_group_name: str,
account_name: str,
- backup_policy_name: str,
- body: Union[_models.BackupPolicyPatch, _types.BackupPolicyPatch, IO[bytes]],
+ pool_name: str,
+ body: Union[_models.ChangeZoneRequest, _types.ChangeZoneRequest, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -13591,10 +23535,10 @@ def _update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_backup_policies_update_request(
+ _request = build_elastic_capacity_pools_change_zone_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_policy_name=backup_policy_name,
+ pool_name=pool_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -13629,9 +23573,7 @@ def _update_initial(
response_headers = {}
if response.status_code == 202:
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -13642,138 +23584,159 @@ def _update_initial(
return deserialized # type: ignore
@overload
- def begin_update(
+ def begin_change_zone(
self,
resource_group_name: str,
account_name: str,
- backup_policy_name: str,
- body: _models.BackupPolicyPatch,
+ pool_name: str,
+ body: _models.ChangeZoneRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupPolicy]:
- """Patch a backup policy for Netapp Account.
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Moves pool to another zone.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :param body: Backup policy object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.BackupPolicyPatch
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.models.ChangeZoneRequest
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
- with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_update(
+ def begin_change_zone(
self,
resource_group_name: str,
account_name: str,
- backup_policy_name: str,
- body: _types.BackupPolicyPatch,
+ pool_name: str,
+ body: _types.ChangeZoneRequest,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupPolicy]:
- """Patch a backup policy for Netapp Account.
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Moves pool to another zone.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :param body: Backup policy object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.BackupPolicyPatch
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.types.ChangeZoneRequest
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
- with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_update(
+ def begin_change_zone(
self,
resource_group_name: str,
account_name: str,
- backup_policy_name: str,
+ pool_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupPolicy]:
- """Patch a backup policy for Netapp Account.
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Moves pool to another zone.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :param body: Backup policy object supplied in the body of the operation. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
- with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
- def begin_update(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_change_zone(
self,
resource_group_name: str,
account_name: str,
- backup_policy_name: str,
- body: Union[_models.BackupPolicyPatch, _types.BackupPolicyPatch, IO[bytes]],
+ pool_name: str,
+ body: Union[_models.ChangeZoneRequest, _types.ChangeZoneRequest, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.BackupPolicy]:
- """Patch a backup policy for Netapp Account.
+ ) -> LROPoller[_models.ElasticCapacityPool]:
+ """Moves pool to another zone.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :param body: Backup policy object supplied in the body of the operation. Is either a
- BackupPolicyPatch type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.BackupPolicyPatch or
- ~azure.mgmt.netapp.types.BackupPolicyPatch or IO[bytes]
- :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible
- with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy]
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Is either a ChangeZoneRequest type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ChangeZoneRequest or
+ ~azure.mgmt.netapp.types.ChangeZoneRequest or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.BackupPolicy] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._update_initial(
+ raw_result = self._change_zone_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_policy_name=backup_policy_name,
+ pool_name=pool_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -13786,7 +23749,7 @@ def begin_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.BackupPolicy, response.json())
+ deserialized = _deserialize(_models.ElasticCapacityPool, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -13804,19 +23767,161 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.BackupPolicy].from_continuation_token(
+ return LROPoller[_models.ElasticCapacityPool].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.BackupPolicy](
+ return LROPoller[_models.ElasticCapacityPool](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial(
- self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
- ) -> Iterator[bytes]:
+ @overload
+ def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _models.CheckElasticVolumeFilePathAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> _models.CheckElasticResourceAvailabilityResponse:
+ """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.models.CheckElasticVolumeFilePathAvailabilityRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse
+ is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: _types.CheckElasticVolumeFilePathAvailabilityRequest,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> _models.CheckElasticResourceAvailabilityResponse:
+ """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.types.CheckElasticVolumeFilePathAvailabilityRequest
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse
+ is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> _models.CheckElasticResourceAvailabilityResponse:
+ """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse
+ is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def check_volume_file_path_availability(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ body: Union[
+ _models.CheckElasticVolumeFilePathAvailabilityRequest,
+ _types.CheckElasticVolumeFilePathAvailabilityRequest,
+ IO[bytes],
+ ],
+ **kwargs: Any
+ ) -> _models.CheckElasticResourceAvailabilityResponse:
+ """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param body: The content of the action request. Is either a
+ CheckElasticVolumeFilePathAvailabilityRequest type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.CheckElasticVolumeFilePathAvailabilityRequest or
+ ~azure.mgmt.netapp.types.CheckElasticVolumeFilePathAvailabilityRequest or IO[bytes]
+ :return: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse
+ is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -13825,17 +23930,27 @@ def _delete_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.CheckElasticResourceAvailabilityResponse] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_backup_policies_delete_request(
+ _request = build_elastic_capacity_pools_check_volume_file_path_availability_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_policy_name=backup_policy_name,
+ pool_name=pool_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -13845,18 +23960,19 @@ def _delete_initial(
_request.url = self._client.format_url(_request.url, **path_format_arguments)
_decompress = kwargs.pop("decompress", True)
- _stream = True
+ _stream = kwargs.pop("stream", False)
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
- if response.status_code not in [200, 202, 204]:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
@@ -13864,98 +23980,74 @@ def _delete_initial(
)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.CheckElasticResourceAvailabilityResponse, response.json())
if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- @distributed_trace
- def begin_delete(
- self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
- ) -> LROPoller[None]:
- """Delete backup policy.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param backup_policy_name: Backup policy Name which uniquely identify backup policy. Required.
- :type backup_policy_name: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
-
- cls: ClsType[None] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._delete_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- backup_policy_name=backup_policy_name,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
- if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+class ElasticVolumesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`elastic_volumes` attribute.
+ """
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
- )
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
- else:
- polling_method = polling
- if cont_token:
- return LROPoller[None].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
@distributed_trace
- def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> ItemPaged["_models.BackupPolicy"]:
- """List backup policies for Netapp Account.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> _models.ElasticVolume:
+ """Get the details of the specified volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :return: An iterator like instance of BackupPolicy
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.BackupPolicy]
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :return: ElasticVolume. The ElasticVolume is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticVolume
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
-
- cls: ClsType[List[_models.BackupPolicy]] = kwargs.pop("cls", None)
-
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -13964,125 +24056,88 @@ def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> It
}
error_map.update(kwargs.pop("error_map", {}) or {})
- def prepare_request(next_link=None):
- if not next_link:
-
- _request = build_backup_policies_list_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
- else:
- # make call to next link with the client's api-version
- _parsed_next_link = urllib.parse.urlparse(next_link)
- _next_request_params = case_insensitive_dict(
- {
- key: [urllib.parse.quote(v) for v in value]
- for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
- }
- )
- _next_request_params["api-version"] = self._config.api_version
- _request = HttpRequest(
- "GET",
- urllib.parse.urljoin(next_link, _parsed_next_link.path),
- headers=_headers,
- params=_next_request_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None)
- return _request
+ _request = build_elastic_volumes_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- def extract_data(pipeline_response):
- deserialized = pipeline_response.http_response.json()
- list_of_elem = _deserialize(
- List[_models.BackupPolicy],
- deserialized.get("value", []),
- )
- if cls:
- list_of_elem = cls(list_of_elem) # type: ignore
- return deserialized.get("nextLink") or None, iter(list_of_elem)
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
- def get_next(next_link=None):
- _request = prepare_request(next_link)
+ response = pipeline_response.http_response
- _stream = False
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
)
- response = pipeline_response.http_response
-
- if response.status_code not in [200]:
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- return pipeline_response
-
- return ItemPaged(get_next, extract_data)
-
-
-class VolumeQuotaRulesOperations:
- """
- .. warning::
- **DO NOT** instantiate this class directly.
-
- Instead, you should access the following operations through
- :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`volume_quota_rules` attribute.
- """
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- def __init__(self, *args, **kwargs) -> None:
- input_args = list(args)
- self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
- self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
- self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
- self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticVolume, response.json())
- @distributed_trace
- def get(
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _create_or_update_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
+ body: Union[_models.ElasticVolume, _types.ElasticVolume, IO[bytes]],
**kwargs: Any
- ) -> _models.VolumeQuotaRule:
- """Get details of the specified quota rule.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :return: VolumeQuotaRule. The VolumeQuotaRule is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.VolumeQuotaRule
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ ) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
@@ -14091,19 +24146,28 @@ def get(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.VolumeQuotaRule] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volume_quota_rules_get_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_volumes_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- volume_quota_rule_name=volume_quota_rule_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -14113,19 +24177,18 @@ def get(
_request.url = self._client.format_url(_request.url, **path_format_arguments)
_decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
+ if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = _failsafe_deserialize(
_models.ErrorResponse,
@@ -14133,24 +24196,257 @@ def get(
)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _models.ElasticVolume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolume
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.ElasticVolume,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticVolume
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ElasticVolume, _types.ElasticVolume, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Create or update the specified volume within the capacity pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: Resource create parameters. Is either a ElasticVolume type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolume or ~azure.mgmt.netapp.types.ElasticVolume
+ or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticVolume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
else:
- deserialized = _deserialize(_models.VolumeQuotaRule, response.json())
-
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
-
- return deserialized # type: ignore
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ElasticVolume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ElasticVolume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
- def _create_initial(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _update_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
- body: Union[_models.VolumeQuotaRule, _types.VolumeQuotaRule, IO[bytes]],
+ body: Union[_models.ElasticVolumeUpdate, _types.ElasticVolumeUpdate, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -14174,12 +24470,11 @@ def _create_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_volume_quota_rules_create_request(
+ _request = build_elastic_volumes_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- volume_quota_rule_name=volume_quota_rule_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -14200,7 +24495,7 @@ def _create_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 201]:
+ if response.status_code not in [200, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -14213,7 +24508,10 @@ def _create_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 201:
+ if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -14225,164 +24523,173 @@ def _create_initial(
return deserialized # type: ignore
@overload
- def begin_create(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
- body: _models.VolumeQuotaRule,
+ body: _models.ElasticVolumeUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.VolumeQuotaRule]:
- """Create the specified quota rule within the given volume.
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Patch the specified elastic volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :param body: Quota rule object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.VolumeQuotaRule
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolumeUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_create(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
- body: _types.VolumeQuotaRule,
+ body: _types.ElasticVolumeUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.VolumeQuotaRule]:
- """Create the specified quota rule within the given volume.
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Patch the specified elastic volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :param body: Quota rule object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.VolumeQuotaRule
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticVolumeUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_create(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.VolumeQuotaRule]:
- """Create the specified quota rule within the given volume.
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Patch the specified elastic volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :param body: Quota rule object supplied in the body of the operation. Required.
+ :param body: The resource properties to be updated. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
- def begin_create(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
- body: Union[_models.VolumeQuotaRule, _types.VolumeQuotaRule, IO[bytes]],
+ body: Union[_models.ElasticVolumeUpdate, _types.ElasticVolumeUpdate, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.VolumeQuotaRule]:
- """Create the specified quota rule within the given volume.
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Patch the specified elastic volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :param body: Quota rule object supplied in the body of the operation. Is either a
- VolumeQuotaRule type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.VolumeQuotaRule or
- ~azure.mgmt.netapp.types.VolumeQuotaRule or IO[bytes]
- :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
+ :param body: The resource properties to be updated. Is either a ElasticVolumeUpdate type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolumeUpdate or
+ ~azure.mgmt.netapp.types.ElasticVolumeUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.VolumeQuotaRule] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._create_initial(
+ raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- volume_quota_rule_name=volume_quota_rule_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -14395,7 +24702,7 @@ def begin_create(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.VolumeQuotaRule, response.json())
+ deserialized = _deserialize(_models.ElasticVolume, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -14413,25 +24720,38 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.VolumeQuotaRule].from_continuation_token(
+ return LROPoller[_models.ElasticVolume].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.VolumeQuotaRule](
+ return LROPoller[_models.ElasticVolume](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _update_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: Union[_models.VolumeQuotaRulePatch, _types.VolumeQuotaRulePatch, IO[bytes]],
- **kwargs: Any
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _delete_initial(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -14441,29 +24761,18 @@ def _update_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
-
- _request = build_volume_quota_rules_update_request(
+ _request = build_elastic_volumes_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- volume_quota_rule_name=volume_quota_rule_name,
subscription_id=self._config.subscription_id,
- content_type=content_type,
api_version=self._config.api_version,
- content=_content,
headers=_headers,
params=_params,
)
@@ -14478,193 +24787,84 @@ def _update_initial(
_request, stream=_stream, **kwargs
)
- response = pipeline_response.http_response
-
- if response.status_code not in [200, 202]:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- response_headers = {}
- if response.status_code == 202:
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
-
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
-
- if cls:
- return cls(pipeline_response, deserialized, response_headers) # type: ignore
-
- return deserialized # type: ignore
-
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: _models.VolumeQuotaRulePatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.VolumeQuotaRule]:
- """Patch a quota rule.
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :param body: Quota rule object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.VolumeQuotaRulePatch
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
-
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: _types.VolumeQuotaRulePatch,
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.VolumeQuotaRule]:
- """Patch a quota rule.
+ response = pipeline_response.http_response
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :param body: Quota rule object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.VolumeQuotaRulePatch
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- @overload
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[_models.VolumeQuotaRule]:
- """Patch a quota rule.
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :param body: Quota rule object supplied in the body of the operation. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
- def begin_update(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- volume_quota_rule_name: str,
- body: Union[_models.VolumeQuotaRulePatch, _types.VolumeQuotaRulePatch, IO[bytes]],
- **kwargs: Any
- ) -> LROPoller[_models.VolumeQuotaRule]:
- """Patch a quota rule.
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_delete(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Delete the specified Elastic Volume.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :param body: Quota rule object supplied in the body of the operation. Is either a
- VolumeQuotaRulePatch type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.VolumeQuotaRulePatch or
- ~azure.mgmt.netapp.types.VolumeQuotaRulePatch or IO[bytes]
- :return: An instance of LROPoller that returns VolumeQuotaRule. The VolumeQuotaRule is
- compatible with MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule]
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.VolumeQuotaRule] = kwargs.pop("cls", None)
+ cls: ClsType[None] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._update_initial(
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- volume_quota_rule_name=volume_quota_rule_name,
- body=body,
- content_type=content_type,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -14673,12 +24873,9 @@ def begin_update(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response):
- response = pipeline_response.http_response
- deserialized = _deserialize(_models.VolumeQuotaRule, response.json())
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
+ return cls(pipeline_response, None, {}) # type: ignore
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -14693,23 +24890,168 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.VolumeQuotaRule].from_continuation_token(
+ return LROPoller[None].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.VolumeQuotaRule](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_pool(
+ self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.ElasticVolume"]:
+ """List all Elastic Volumes within the Elastic Capacity Pool.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :return: An iterator like instance of ElasticVolume
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticVolume]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_volumes_list_by_elastic_pool_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticVolume],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
- def _delete_initial(
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _revert_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
+ body: Union[_models.ElasticVolumeRevert, _types.ElasticVolumeRevert, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -14720,19 +25062,28 @@ def _delete_initial(
}
error_map.update(kwargs.pop("error_map", {}) or {})
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_volume_quota_rules_delete_request(
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_volumes_revert_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- volume_quota_rule_name=volume_quota_rule_name,
subscription_id=self._config.subscription_id,
+ content_type=content_type,
api_version=self._config.api_version,
+ content=_content,
headers=_headers,
params=_params,
)
@@ -14749,7 +25100,7 @@ def _delete_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202, 204]:
+ if response.status_code not in [200, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -14773,197 +25124,223 @@ def _delete_initial(
return deserialized # type: ignore
- @distributed_trace
- def begin_delete(
+ @overload
+ def begin_revert(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- volume_quota_rule_name: str,
+ body: _models.ElasticVolumeRevert,
+ *,
+ content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Delete quota rule.
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Revert an Elastic Volume to the snapshot specified in the body.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param volume_quota_rule_name: The name of volume quota rule. Required.
- :type volume_quota_rule_name: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolumeRevert
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
-
- cls: ClsType[None] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._delete_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- volume_quota_rule_name=volume_quota_rule_name,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
-
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
- if cls:
- return cls(pipeline_response, None, {}) # type: ignore
-
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
-
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
- )
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
- else:
- polling_method = polling
- if cont_token:
- return LROPoller[None].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
- )
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- @distributed_trace
- def list_by_volume(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> ItemPaged["_models.VolumeQuotaRule"]:
- """List all quota rules associated with the volume.
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: _types.ElasticVolumeRevert,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Revert an Elastic Volume to the snapshot specified in the body.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :return: An iterator like instance of VolumeQuotaRule
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.VolumeQuotaRule]
+ :param body: The content of the action request. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticVolumeRevert
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
-
- cls: ClsType[List[_models.VolumeQuotaRule]] = kwargs.pop("cls", None)
-
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
- def prepare_request(next_link=None):
- if not next_link:
+ @overload
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Revert an Elastic Volume to the snapshot specified in the body.
- _request = build_volume_quota_rules_list_by_volume_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
- else:
- # make call to next link with the client's api-version
- _parsed_next_link = urllib.parse.urlparse(next_link)
- _next_request_params = case_insensitive_dict(
- {
- key: [urllib.parse.quote(v) for v in value]
- for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
- }
- )
- _next_request_params["api-version"] = self._config.api_version
- _request = HttpRequest(
- "GET",
- urllib.parse.urljoin(next_link, _parsed_next_link.path),
- headers=_headers,
- params=_next_request_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_revert(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ body: Union[_models.ElasticVolumeRevert, _types.ElasticVolumeRevert, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticVolume]:
+ """Revert an Elastic Volume to the snapshot specified in the body.
- return _request
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param body: The content of the action request. Is either a ElasticVolumeRevert type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticVolumeRevert or
+ ~azure.mgmt.netapp.types.ElasticVolumeRevert or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticVolume. The ElasticVolume is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
- def extract_data(pipeline_response):
- deserialized = pipeline_response.http_response.json()
- list_of_elem = _deserialize(
- List[_models.VolumeQuotaRule],
- deserialized.get("value", []),
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._revert_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
)
- if cls:
- list_of_elem = cls(list_of_elem) # type: ignore
- return deserialized.get("nextLink") or None, iter(list_of_elem)
-
- def get_next(next_link=None):
- _request = prepare_request(next_link)
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
- _stream = False
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
+ def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticVolume, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
- if response.status_code not in [200]:
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- return pipeline_response
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
- return ItemPaged(get_next, extract_data)
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ElasticVolume].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ElasticVolume](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
-class RansomwareReportsOperations:
+class ElasticSnapshotsOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`ransomware_reports` attribute.
+ :attr:`elastic_snapshots` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
@@ -14975,29 +25352,25 @@ def __init__(self, *args, **kwargs) -> None:
@distributed_trace
@api_version_validation(
- method_added_on="2025-12-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2025-12-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
"account_name",
"pool_name",
"volume_name",
- "ransomware_report_name",
+ "snapshot_name",
"accept",
]
},
api_versions_list=[
- "2025-12-01",
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def get(
@@ -15006,28 +25379,24 @@ def get(
account_name: str,
pool_name: str,
volume_name: str,
- ransomware_report_name: str,
+ snapshot_name: str,
**kwargs: Any
- ) -> _models.RansomwareReport:
- """Get details of the specified ransomware report (ARP) ARP reports are created with a list of
- suspected files when it detects any combination of high data entropy, abnormal volume activity
- with data encryption, and unusual file extensions. ARP creates snapshots named
- Anti_ransomware_backup when it detects a potential ransomware threat. You can use one of these
- ARP snapshots or another snapshot of your volume to restore data.
+ ) -> _models.ElasticSnapshot:
+ """Get a ElasticSnapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param ransomware_report_name: The name of the ransomware report. Required.
- :type ransomware_report_name: str
- :return: RansomwareReport. The RansomwareReport is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.RansomwareReport
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :return: ElasticSnapshot. The ElasticSnapshot is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticSnapshot
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map: MutableMapping = {
@@ -15041,14 +25410,14 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.RansomwareReport] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticSnapshot] = kwargs.pop("cls", None)
- _request = build_ransomware_reports_get_request(
+ _request = build_elastic_snapshots_get_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- ransomware_report_name=ransomware_report_name,
+ snapshot_name=snapshot_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -15083,185 +25452,44 @@ def get(
if _stream:
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- deserialized = _deserialize(_models.RansomwareReport, response.json())
+ deserialized = _deserialize(_models.ElasticSnapshot, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- @distributed_trace
- @api_version_validation(
- method_added_on="2025-12-01",
- params_added_on={
- "2025-12-01": [
- "api_version",
- "subscription_id",
- "resource_group_name",
- "account_name",
- "pool_name",
- "volume_name",
- "accept",
- ]
- },
- api_versions_list=[
- "2025-12-01",
- "2025-12-15-preview",
- "2026-01-01",
- "2026-01-15-preview",
- "2026-03-01",
- "2026-03-15-preview",
- "2026-04-01",
- "2026-04-15-preview",
- "2026-05-01",
- ],
- )
- def list(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> ItemPaged["_models.RansomwareReport"]:
- """List all ransomware reports for the volume Returns a list of the Advanced Ransomware Protection
- (ARP) reports for the volume. ARP reports are created with a list of suspected files when it
- detects any combination of high data entropy, abnormal volume activity with data encryption,
- and unusual file extensions. ARP creates snapshots named Anti_ransomware_backup when it detects
- a potential ransomware threat. You can use one of these ARP snapshots or another snapshot of
- your volume to restore data".
-
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: An iterator like instance of RansomwareReport
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.RansomwareReport]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
-
- cls: ClsType[List[_models.RansomwareReport]] = kwargs.pop("cls", None)
-
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
- def prepare_request(next_link=None):
- if not next_link:
-
- _request = build_ransomware_reports_list_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- else:
- # make call to next link with the client's api-version
- _parsed_next_link = urllib.parse.urlparse(next_link)
- _next_request_params = case_insensitive_dict(
- {
- key: [urllib.parse.quote(v) for v in value]
- for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
- }
- )
- _next_request_params["api-version"] = self._config.api_version
- _request = HttpRequest(
- "GET",
- urllib.parse.urljoin(next_link, _parsed_next_link.path),
- headers=_headers,
- params=_next_request_params,
- )
- path_format_arguments = {
- "endpoint": self._serialize.url(
- "self._config.base_url", self._config.base_url, "str", skip_quote=True
- ),
- }
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- return _request
-
- def extract_data(pipeline_response):
- deserialized = pipeline_response.http_response.json()
- list_of_elem = _deserialize(
- List[_models.RansomwareReport],
- deserialized.get("value", []),
- )
- if cls:
- list_of_elem = cls(list_of_elem) # type: ignore
- return deserialized.get("nextLink") or None, iter(list_of_elem)
-
- def get_next(next_link=None):
- _request = prepare_request(next_link)
-
- _stream = False
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
- response = pipeline_response.http_response
-
- if response.status_code not in [200]:
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- return pipeline_response
-
- return ItemPaged(get_next, extract_data)
-
@api_version_validation(
- method_added_on="2025-12-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2025-12-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
"account_name",
"pool_name",
"volume_name",
- "ransomware_report_name",
+ "snapshot_name",
"content_type",
+ "accept",
]
},
api_versions_list=[
- "2025-12-01",
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def _clear_suspects_initial(
+ def _create_or_update_initial(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- ransomware_report_name: str,
- body: Union[_models.RansomwareSuspectsClearRequest, _types.RansomwareSuspectsClearRequest, IO[bytes]],
+ snapshot_name: str,
+ body: Union[_models.ElasticSnapshot, _types.ElasticSnapshot, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -15285,12 +25513,12 @@ def _clear_suspects_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_ransomware_reports_clear_suspects_request(
+ _request = build_elastic_snapshots_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- ransomware_report_name=ransomware_report_name,
+ snapshot_name=snapshot_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -15311,7 +25539,7 @@ def _clear_suspects_initial(
response = pipeline_response.http_response
- if response.status_code not in [202]:
+ if response.status_code not in [200, 201]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -15324,8 +25552,11 @@ def _clear_suspects_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -15335,204 +25566,380 @@ def _clear_suspects_initial(
return deserialized # type: ignore
@overload
- def begin_clear_suspects(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- ransomware_report_name: str,
- body: _models.RansomwareSuspectsClearRequest,
+ snapshot_name: str,
+ body: _models.ElasticSnapshot,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Clear ransomware suspects for the given Advanced Ransomware Protection report. You should
- evaluate the report to determine whether the activity is acceptable (false positive) or whether
- an attack seems malicious. ARP creates snapshots named Anti_ransomware_backup when it detects a
- potential ransomware threat. You can use one of these ARP snapshots or another snapshot of your
- volume to restore data",.
+ ) -> LROPoller[_models.ElasticSnapshot]:
+ """Create a ElasticSnapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param ransomware_report_name: The name of the ransomware report. Required.
- :type ransomware_report_name: str
- :param body: Clear suspects request object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.RansomwareSuspectsClearRequest
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshot
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns ElasticSnapshot. The ElasticSnapshot is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshot]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_clear_suspects(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- ransomware_report_name: str,
- body: _types.RansomwareSuspectsClearRequest,
+ snapshot_name: str,
+ body: _types.ElasticSnapshot,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Clear ransomware suspects for the given Advanced Ransomware Protection report. You should
- evaluate the report to determine whether the activity is acceptable (false positive) or whether
- an attack seems malicious. ARP creates snapshots named Anti_ransomware_backup when it detects a
- potential ransomware threat. You can use one of these ARP snapshots or another snapshot of your
- volume to restore data",.
+ ) -> LROPoller[_models.ElasticSnapshot]:
+ """Create a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticSnapshot
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticSnapshot. The ElasticSnapshot is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticSnapshot]:
+ """Create a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticSnapshot. The ElasticSnapshot is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "snapshot_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ body: Union[_models.ElasticSnapshot, _types.ElasticSnapshot, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.ElasticSnapshot]:
+ """Create a ElasticSnapshot.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
+ :param body: Resource create parameters. Is either a ElasticSnapshot type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshot or
+ ~azure.mgmt.netapp.types.ElasticSnapshot or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticSnapshot. The ElasticSnapshot is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ElasticSnapshot] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticSnapshot, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ElasticSnapshot].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ElasticSnapshot](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "snapshot_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _delete_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ pool_name: str,
+ volume_name: str,
+ snapshot_name: str,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_elastic_snapshots_delete_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ snapshot_name=snapshot_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param ransomware_report_name: The name of the ransomware report. Required.
- :type ransomware_report_name: str
- :param body: Clear suspects request object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.RansomwareSuspectsClearRequest
- :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ response = pipeline_response.http_response
- @overload
- def begin_clear_suspects(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- ransomware_report_name: str,
- body: IO[bytes],
- *,
- content_type: str = "application/json",
- **kwargs: Any
- ) -> LROPoller[None]:
- """Clear ransomware suspects for the given Advanced Ransomware Protection report. You should
- evaluate the report to determine whether the activity is acceptable (false positive) or whether
- an attack seems malicious. ARP creates snapshots named Anti_ransomware_backup when it detects a
- potential ransomware threat. You can use one of these ARP snapshots or another snapshot of your
- volume to restore data",.
+ if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param ransomware_report_name: The name of the ransomware report. Required.
- :type ransomware_report_name: str
- :param body: Clear suspects request object supplied in the body of the operation. Required.
- :type body: IO[bytes]
- :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
@api_version_validation(
- method_added_on="2025-12-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2025-12-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
"account_name",
"pool_name",
"volume_name",
- "ransomware_report_name",
- "content_type",
+ "snapshot_name",
]
},
api_versions_list=[
- "2025-12-01",
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def begin_clear_suspects(
+ def begin_delete(
self,
resource_group_name: str,
account_name: str,
pool_name: str,
volume_name: str,
- ransomware_report_name: str,
- body: Union[_models.RansomwareSuspectsClearRequest, _types.RansomwareSuspectsClearRequest, IO[bytes]],
+ snapshot_name: str,
**kwargs: Any
) -> LROPoller[None]:
- """Clear ransomware suspects for the given Advanced Ransomware Protection report. You should
- evaluate the report to determine whether the activity is acceptable (false positive) or whether
- an attack seems malicious. ARP creates snapshots named Anti_ransomware_backup when it detects a
- potential ransomware threat. You can use one of these ARP snapshots or another snapshot of your
- volume to restore data",.
+ """Delete a ElasticSnapshot.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
+ :param pool_name: The name of the ElasticCapacityPool. Required.
:type pool_name: str
- :param volume_name: The name of the volume. Required.
+ :param volume_name: The name of the ElasticVolume. Required.
:type volume_name: str
- :param ransomware_report_name: The name of the ransomware report. Required.
- :type ransomware_report_name: str
- :param body: Clear suspects request object supplied in the body of the operation. Is either a
- RansomwareSuspectsClearRequest type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.RansomwareSuspectsClearRequest or
- ~azure.mgmt.netapp.types.RansomwareSuspectsClearRequest or IO[bytes]
+ :param snapshot_name: The name of the ElasticSnapshot. Required.
+ :type snapshot_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[None] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._clear_suspects_initial(
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
pool_name=pool_name,
volume_name=volume_name,
- ransomware_report_name=ransomware_report_name,
- body=body,
- content_type=content_type,
+ snapshot_name=snapshot_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -15566,15 +25973,144 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "pool_name",
+ "volume_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_volume(
+ self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.ElasticSnapshot"]:
+ """List ElasticSnapshot resources by ElasticVolume.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param pool_name: The name of the ElasticCapacityPool. Required.
+ :type pool_name: str
+ :param volume_name: The name of the ElasticVolume. Required.
+ :type volume_name: str
+ :return: An iterator like instance of ElasticSnapshot
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticSnapshot]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticSnapshot]] = kwargs.pop("cls", None)
-class BackupVaultsOperations:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_snapshots_list_by_elastic_volume_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ pool_name=pool_name,
+ volume_name=volume_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticSnapshot],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+
+class ElasticSnapshotPoliciesOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`backup_vaults` attribute.
+ :attr:`elastic_snapshot_policies` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
@@ -15585,20 +26121,40 @@ def __init__(self, *args, **kwargs) -> None:
self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
@distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def get(
- self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
- ) -> _models.BackupVault:
- """Get the Backup Vault.
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
+ ) -> _models.ElasticSnapshotPolicy:
+ """Get a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :return: BackupVault. The BackupVault is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.BackupVault
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :return: ElasticSnapshotPolicy. The ElasticSnapshotPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticSnapshotPolicy
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map: MutableMapping = {
@@ -15612,12 +26168,12 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.BackupVault] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticSnapshotPolicy] = kwargs.pop("cls", None)
- _request = build_backup_vaults_get_request(
+ _request = build_elastic_snapshot_policies_get_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
+ snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -15652,19 +26208,40 @@ def get(
if _stream:
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- deserialized = _deserialize(_models.BackupVault, response.json())
+ deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def _create_or_update_initial(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- body: Union[_models.BackupVault, _types.BackupVault, IO[bytes]],
+ snapshot_policy_name: str,
+ body: Union[_models.ElasticSnapshotPolicy, _types.ElasticSnapshotPolicy, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -15688,10 +26265,10 @@ def _create_or_update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_backup_vaults_create_or_update_request(
+ _request = build_elastic_snapshot_policies_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
+ snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -15743,29 +26320,29 @@ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- body: _models.BackupVault,
+ snapshot_policy_name: str,
+ body: _models.ElasticSnapshotPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupVault]:
- """Create or update the specified Backup Vault in the NetApp account.
+ ) -> LROPoller[_models.ElasticSnapshotPolicy]:
+ """Create a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param body: BackupVault object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.BackupVault
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshotPolicy
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :return: An instance of LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -15774,29 +26351,29 @@ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- body: _types.BackupVault,
+ snapshot_policy_name: str,
+ body: _types.ElasticSnapshotPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupVault]:
- """Create or update the specified Backup Vault in the NetApp account.
+ ) -> LROPoller[_models.ElasticSnapshotPolicy]:
+ """Create a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param body: BackupVault object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.BackupVault
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticSnapshotPolicy
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :return: An instance of LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -15805,64 +26382,85 @@ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
+ snapshot_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupVault]:
- """Create or update the specified Backup Vault in the NetApp account.
+ ) -> LROPoller[_models.ElasticSnapshotPolicy]:
+ """Create a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param body: BackupVault object supplied in the body of the operation. Required.
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: Resource create parameters. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :return: An instance of LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- body: Union[_models.BackupVault, _types.BackupVault, IO[bytes]],
+ snapshot_policy_name: str,
+ body: Union[_models.ElasticSnapshotPolicy, _types.ElasticSnapshotPolicy, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.BackupVault]:
- """Create or update the specified Backup Vault in the NetApp account.
+ ) -> LROPoller[_models.ElasticSnapshotPolicy]:
+ """Create a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param body: BackupVault object supplied in the body of the operation. Is either a BackupVault
- type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.BackupVault or ~azure.mgmt.netapp.types.BackupVault or
- IO[bytes]
- :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: Resource create parameters. Is either a ElasticSnapshotPolicy type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshotPolicy or
+ ~azure.mgmt.netapp.types.ElasticSnapshotPolicy or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.BackupVault] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticSnapshotPolicy] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -15870,7 +26468,7 @@ def begin_create_or_update(
raw_result = self._create_or_update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
+ snapshot_policy_name=snapshot_policy_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -15883,7 +26481,7 @@ def begin_create_or_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.BackupVault, response.json())
+ deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -15901,22 +26499,43 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.BackupVault].from_continuation_token(
+ return LROPoller[_models.ElasticSnapshotPolicy].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.BackupVault](
+ return LROPoller[_models.ElasticSnapshotPolicy](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def _update_initial(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- body: Union[_models.BackupVaultPatch, _types.BackupVaultPatch, IO[bytes]],
+ snapshot_policy_name: str,
+ body: Union[_models.ElasticSnapshotPolicyUpdate, _types.ElasticSnapshotPolicyUpdate, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -15940,10 +26559,10 @@ def _update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_backup_vaults_update_request(
+ _request = build_elastic_snapshot_policies_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
+ snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -15978,6 +26597,9 @@ def _update_initial(
response_headers = {}
if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -15993,29 +26615,29 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- body: _models.BackupVaultPatch,
+ snapshot_policy_name: str,
+ body: _models.ElasticSnapshotPolicyUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupVault]:
- """Patch the specified NetApp Backup Vault.
+ ) -> LROPoller[_models.ElasticSnapshotPolicy]:
+ """Update a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param body: Backup Vault object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.BackupVaultPatch
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :return: An instance of LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -16024,29 +26646,29 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- body: _types.BackupVaultPatch,
+ snapshot_policy_name: str,
+ body: _types.ElasticSnapshotPolicyUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupVault]:
- """Patch the specified NetApp Backup Vault.
+ ) -> LROPoller[_models.ElasticSnapshotPolicy]:
+ """Update a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param body: Backup Vault object supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.BackupVaultPatch
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticSnapshotPolicyUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :return: An instance of LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -16055,64 +26677,85 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
+ snapshot_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.BackupVault]:
- """Patch the specified NetApp Backup Vault.
+ ) -> LROPoller[_models.ElasticSnapshotPolicy]:
+ """Update a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param body: Backup Vault object supplied in the body of the operation. Required.
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: The resource properties to be updated. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :return: An instance of LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def begin_update(
self,
resource_group_name: str,
account_name: str,
- backup_vault_name: str,
- body: Union[_models.BackupVaultPatch, _types.BackupVaultPatch, IO[bytes]],
+ snapshot_policy_name: str,
+ body: Union[_models.ElasticSnapshotPolicyUpdate, _types.ElasticSnapshotPolicyUpdate, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.BackupVault]:
- """Patch the specified NetApp Backup Vault.
+ ) -> LROPoller[_models.ElasticSnapshotPolicy]:
+ """Update a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
- :param body: Backup Vault object supplied in the body of the operation. Is either a
- BackupVaultPatch type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.BackupVaultPatch or
- ~azure.mgmt.netapp.types.BackupVaultPatch or IO[bytes]
- :return: An instance of LROPoller that returns BackupVault. The BackupVault is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault]
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :param body: The resource properties to be updated. Is either a ElasticSnapshotPolicyUpdate
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdate or
+ ~azure.mgmt.netapp.types.ElasticSnapshotPolicyUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.BackupVault] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticSnapshotPolicy] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -16120,7 +26763,7 @@ def begin_update(
raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
+ snapshot_policy_name=snapshot_policy_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -16133,7 +26776,7 @@ def begin_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.BackupVault, response.json())
+ deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -16151,18 +26794,37 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.BackupVault].from_continuation_token(
+ return LROPoller[_models.ElasticSnapshotPolicy].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.BackupVault](
+ return LROPoller[_models.ElasticSnapshotPolicy](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def _delete_initial(
- self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -16177,10 +26839,10 @@ def _delete_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_backup_vaults_delete_request(
+ _request = build_elastic_snapshot_policies_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
+ snapshot_policy_name=snapshot_policy_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -16224,18 +26886,37 @@ def _delete_initial(
return deserialized # type: ignore
@distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
def begin_delete(
- self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
) -> LROPoller[None]:
- """Delete the specified Backup Vault.
+ """Delete a ElasticSnapshotPolicy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param backup_vault_name: The name of the Backup Vault. Required.
- :type backup_vault_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -16251,7 +26932,7 @@ def begin_delete(
raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- backup_vault_name=backup_vault_name,
+ snapshot_policy_name=snapshot_policy_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -16286,24 +26967,37 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
@distributed_trace
- def list_by_net_app_account(
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_account(
self, resource_group_name: str, account_name: str, **kwargs: Any
- ) -> ItemPaged["_models.BackupVault"]:
- """List and describe all Backup Vaults in the NetApp account.
+ ) -> ItemPaged["_models.ElasticSnapshotPolicy"]:
+ """List ElasticSnapshotPolicy resources by ElasticAccount.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :return: An iterator like instance of BackupVault
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.BackupVault]
+ :return: An iterator like instance of ElasticSnapshotPolicy
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticSnapshotPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[List[_models.BackupVault]] = kwargs.pop("cls", None)
+ cls: ClsType[List[_models.ElasticSnapshotPolicy]] = kwargs.pop("cls", None)
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -16316,7 +27010,7 @@ def list_by_net_app_account(
def prepare_request(next_link=None):
if not next_link:
- _request = build_backup_vaults_list_by_net_app_account_request(
+ _request = build_elastic_snapshot_policies_list_by_elastic_account_request(
resource_group_name=resource_group_name,
account_name=account_name,
subscription_id=self._config.subscription_id,
@@ -16359,7 +27053,7 @@ def prepare_request(next_link=None):
def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = _deserialize(
- List[_models.BackupVault],
+ List[_models.ElasticSnapshotPolicy],
deserialized.get("value", []),
)
if cls:
@@ -16387,15 +27081,140 @@ def get_next(next_link=None):
return ItemPaged(get_next, extract_data)
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "snapshot_policy_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_elastic_volumes(
+ self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.ElasticVolume"]:
+ """Get elastic volumes associated with Elastic Snapshot Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required.
+ :type snapshot_policy_name: str
+ :return: An iterator like instance of ElasticVolume
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticVolume]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticVolume]] = kwargs.pop("cls", None)
-class BucketsOperations:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_snapshot_policies_list_elastic_volumes_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ snapshot_policy_name=snapshot_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticVolume],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+
+class ElasticBackupVaultsOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`buckets` attribute.
+ :attr:`elastic_backup_vaults` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
@@ -16414,48 +27233,32 @@ def __init__(self, *args, **kwargs) -> None:
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_vault_name",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def get(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- **kwargs: Any
- ) -> _models.Bucket:
- """Get the details of the specified volume's bucket. A bucket allows additional services, such as
- AI services, connect to the volume data contained in those buckets.
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ ) -> _models.ElasticBackupVault:
+ """Get the Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :return: Bucket. The Bucket is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.Bucket
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :return: ElasticBackupVault. The ElasticBackupVault is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticBackupVault
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map: MutableMapping = {
@@ -16469,14 +27272,12 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.Bucket] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticBackupVault] = kwargs.pop("cls", None)
- _request = build_buckets_get_request(
+ _request = build_elastic_backup_vaults_get_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_vault_name=backup_vault_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -16511,7 +27312,7 @@ def get(
if _stream:
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- deserialized = _deserialize(_models.Bucket, response.json())
+ deserialized = _deserialize(_models.ElasticBackupVault, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -16526,32 +27327,25 @@ def get(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_vault_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def _create_or_update_initial(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Union[_models.Bucket, _types.Bucket, IO[bytes]],
+ backup_vault_name: str,
+ body: Union[_models.ElasticBackupVault, _types.ElasticBackupVault, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -16575,12 +27369,10 @@ def _create_or_update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_buckets_create_or_update_request(
+ _request = build_elastic_backup_vaults_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_vault_name=backup_vault_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -16632,37 +27424,29 @@ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: _models.Bucket,
+ backup_vault_name: str,
+ body: _models.ElasticBackupVault,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Bucket]:
- """Creates or updates a bucket for a volume. A bucket allows additional services, such as AI
- services, connect to the volume data contained in those buckets.
+ ) -> LROPoller[_models.ElasticBackupVault]:
+ """Create or update the specified Elastic Backup Vault in the Elastic NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket details including user details, and the volume path that should be
- mounted inside the bucket. Required.
- :type body: ~azure.mgmt.netapp.models.Bucket
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupVault
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :return: An instance of LROPoller that returns ElasticBackupVault. The ElasticBackupVault is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -16670,38 +27454,30 @@ def begin_create_or_update(
def begin_create_or_update(
self,
resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: _types.Bucket,
+ account_name: str,
+ backup_vault_name: str,
+ body: _types.ElasticBackupVault,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Bucket]:
- """Creates or updates a bucket for a volume. A bucket allows additional services, such as AI
- services, connect to the volume data contained in those buckets.
+ ) -> LROPoller[_models.ElasticBackupVault]:
+ """Create or update the specified Elastic Backup Vault in the Elastic NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket details including user details, and the volume path that should be
- mounted inside the bucket. Required.
- :type body: ~azure.mgmt.netapp.types.Bucket
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackupVault
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :return: An instance of LROPoller that returns ElasticBackupVault. The ElasticBackupVault is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -16710,37 +27486,29 @@ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
+ backup_vault_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Bucket]:
- """Creates or updates a bucket for a volume. A bucket allows additional services, such as AI
- services, connect to the volume data contained in those buckets.
+ ) -> LROPoller[_models.ElasticBackupVault]:
+ """Create or update the specified Elastic Backup Vault in the Elastic NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket details including user details, and the volume path that should be
- mounted inside the bucket. Required.
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: Resource create parameters. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :return: An instance of LROPoller that returns ElasticBackupVault. The ElasticBackupVault is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -16753,61 +27521,50 @@ def begin_create_or_update(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_vault_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Union[_models.Bucket, _types.Bucket, IO[bytes]],
+ backup_vault_name: str,
+ body: Union[_models.ElasticBackupVault, _types.ElasticBackupVault, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Bucket]:
- """Creates or updates a bucket for a volume. A bucket allows additional services, such as AI
- services, connect to the volume data contained in those buckets.
+ ) -> LROPoller[_models.ElasticBackupVault]:
+ """Create or update the specified Elastic Backup Vault in the Elastic NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket details including user details, and the volume path that should be
- mounted inside the bucket. Is either a Bucket type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.Bucket or ~azure.mgmt.netapp.types.Bucket or IO[bytes]
- :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: Resource create parameters. Is either a ElasticBackupVault type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupVault or
+ ~azure.mgmt.netapp.types.ElasticBackupVault or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticBackupVault. The ElasticBackupVault is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Bucket] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticBackupVault] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -16815,9 +27572,7 @@ def begin_create_or_update(
raw_result = self._create_or_update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_vault_name=backup_vault_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -16830,7 +27585,7 @@ def begin_create_or_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Bucket, response.json())
+ deserialized = _deserialize(_models.ElasticBackupVault, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -16848,13 +27603,13 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Bucket].from_continuation_token(
+ return LROPoller[_models.ElasticBackupVault].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Bucket](
+ return LROPoller[_models.ElasticBackupVault](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
@@ -16866,32 +27621,25 @@ def get_long_running_output(pipeline_response):
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_vault_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def _update_initial(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Union[_models.BucketPatch, _types.BucketPatch, IO[bytes]],
+ backup_vault_name: str,
+ body: Union[_models.ElasticBackupVaultUpdate, _types.ElasticBackupVaultUpdate, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -16915,12 +27663,10 @@ def _update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_buckets_update_request(
+ _request = build_elastic_backup_vaults_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_vault_name=backup_vault_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -16973,36 +27719,29 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: _models.BucketPatch,
+ backup_vault_name: str,
+ body: _models.ElasticBackupVaultUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Bucket]:
- """Updates the details of a volume bucket.
+ ) -> LROPoller[_models.ElasticBackupVault]:
+ """Patch the specified NetApp Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket details including user details, and the volume path that should be
- mounted inside the bucket. Required.
- :type body: ~azure.mgmt.netapp.models.BucketPatch
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupVaultUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :return: An instance of LROPoller that returns ElasticBackupVault. The ElasticBackupVault is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -17011,36 +27750,29 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: _types.BucketPatch,
+ backup_vault_name: str,
+ body: _types.ElasticBackupVaultUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Bucket]:
- """Updates the details of a volume bucket.
+ ) -> LROPoller[_models.ElasticBackupVault]:
+ """Patch the specified NetApp Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket details including user details, and the volume path that should be
- mounted inside the bucket. Required.
- :type body: ~azure.mgmt.netapp.types.BucketPatch
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackupVaultUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :return: An instance of LROPoller that returns ElasticBackupVault. The ElasticBackupVault is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -17049,36 +27781,29 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
+ backup_vault_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Bucket]:
- """Updates the details of a volume bucket.
+ ) -> LROPoller[_models.ElasticBackupVault]:
+ """Patch the specified NetApp Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket details including user details, and the volume path that should be
- mounted inside the bucket. Required.
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: The resource properties to be updated. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :return: An instance of LROPoller that returns ElasticBackupVault. The ElasticBackupVault is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -17091,61 +27816,50 @@ def begin_update(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_vault_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Union[_models.BucketPatch, _types.BucketPatch, IO[bytes]],
+ backup_vault_name: str,
+ body: Union[_models.ElasticBackupVaultUpdate, _types.ElasticBackupVaultUpdate, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Bucket]:
- """Updates the details of a volume bucket.
+ ) -> LROPoller[_models.ElasticBackupVault]:
+ """Patch the specified NetApp Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket details including user details, and the volume path that should be
- mounted inside the bucket. Is either a BucketPatch type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.BucketPatch or ~azure.mgmt.netapp.types.BucketPatch or
- IO[bytes]
- :return: An instance of LROPoller that returns Bucket. The Bucket is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket]
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param body: The resource properties to be updated. Is either a ElasticBackupVaultUpdate type
+ or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupVaultUpdate or
+ ~azure.mgmt.netapp.types.ElasticBackupVaultUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticBackupVault. The ElasticBackupVault is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Bucket] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticBackupVault] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -17153,9 +27867,7 @@ def begin_update(
raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_vault_name=backup_vault_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -17168,7 +27880,7 @@ def begin_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Bucket, response.json())
+ deserialized = _deserialize(_models.ElasticBackupVault, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -17186,13 +27898,13 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Bucket].from_continuation_token(
+ return LROPoller[_models.ElasticBackupVault].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Bucket](
+ return LROPoller[_models.ElasticBackupVault](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
@@ -17204,30 +27916,19 @@ def get_long_running_output(pipeline_response):
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_vault_name",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def _delete_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- **kwargs: Any
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -17242,12 +27943,10 @@ def _delete_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_buckets_delete_request(
+ _request = build_elastic_backup_vaults_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_vault_name=backup_vault_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -17280,9 +27979,6 @@ def _delete_initial(
response_headers = {}
if response.status_code == 202:
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -17302,44 +27998,29 @@ def _delete_initial(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_vault_name",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def begin_delete(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- **kwargs: Any
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
) -> LROPoller[None]:
- """Delete a volume's bucket.
+ """Delete the specified Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -17354,10 +28035,8 @@ def begin_delete(
if cont_token is None:
raw_result = self._delete_initial(
resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ account_name=account_name,
+ backup_vault_name=backup_vault_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -17395,50 +28074,34 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
@api_version_validation(
method_added_on="2025-12-15-preview",
params_added_on={
- "2025-12-15-preview": [
- "api_version",
- "subscription_id",
- "resource_group_name",
- "account_name",
- "pool_name",
- "volume_name",
- "accept",
- ]
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def list(
- self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any
- ) -> ItemPaged["_models.Bucket"]:
- """Describes all buckets belonging to a volume. Buckets allow additional services, such as AI
- services, connect to the volume data contained in those buckets.
+ def list_by_elastic_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.ElasticBackupVault"]:
+ """List and describe all Elastic Backup Vaults in the elastic account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :return: An iterator like instance of Bucket
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Bucket]
+ :return: An iterator like instance of ElasticBackupVault
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticBackupVault]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[List[_models.Bucket]] = kwargs.pop("cls", None)
+ cls: ClsType[List[_models.ElasticBackupVault]] = kwargs.pop("cls", None)
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -17451,11 +28114,9 @@ def list(
def prepare_request(next_link=None):
if not next_link:
- _request = build_buckets_list_request(
+ _request = build_elastic_backup_vaults_list_by_elastic_account_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -17496,7 +28157,7 @@ def prepare_request(next_link=None):
def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = _deserialize(
- List[_models.Bucket],
+ List[_models.ElasticBackupVault],
deserialized.get("value", []),
)
if cls:
@@ -17524,120 +28185,309 @@ def get_next(next_link=None):
return ItemPaged(get_next, extract_data)
+
+class ElasticBackupPoliciesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`elastic_backup_policies` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
+ ) -> _models.ElasticBackupPolicy:
+ """Get the Elastic Backup Policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :return: ElasticBackupPolicy. The ElasticBackupPolicy is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticBackupPolicy
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ElasticBackupPolicy] = kwargs.pop("cls", None)
+
+ _request = build_elastic_backup_policies_get_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ElasticBackupPolicy, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "account_name",
+ "backup_policy_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ account_name: str,
+ backup_policy_name: str,
+ body: Union[_models.ElasticBackupPolicy, _types.ElasticBackupPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_elastic_backup_policies_create_or_update_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
@overload
- def generate_credentials(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: _models.BucketCredentialsExpiry,
+ backup_policy_name: str,
+ body: _models.ElasticBackupPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> _models.BucketGenerateCredentials:
- """Generate the access key and secret key used for accessing the specified volume bucket. Also
- return expiry date and time of key pair (in UTC).
+ ) -> LROPoller[_models.ElasticBackupPolicy]:
+ """Create or update the specified Elastic Backup Policy in the NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket's Access and Secret key pair expiry time expressed as the number of
- days from now. Required.
- :type body: ~azure.mgmt.netapp.models.BucketCredentialsExpiry
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupPolicy
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
- Default value is "application/json".
- :paramtype content_type: str
- :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with
- MutableMapping
- :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def generate_credentials(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: _types.BucketCredentialsExpiry,
+ backup_policy_name: str,
+ body: _types.ElasticBackupPolicy,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> _models.BucketGenerateCredentials:
- """Generate the access key and secret key used for accessing the specified volume bucket. Also
- return expiry date and time of key pair (in UTC).
+ ) -> LROPoller[_models.ElasticBackupPolicy]:
+ """Create or update the specified Elastic Backup Policy in the NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket's Access and Secret key pair expiry time expressed as the number of
- days from now. Required.
- :type body: ~azure.mgmt.netapp.types.BucketCredentialsExpiry
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackupPolicy
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with
- MutableMapping
- :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials
+ :return: An instance of LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def generate_credentials(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
+ backup_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> _models.BucketGenerateCredentials:
- """Generate the access key and secret key used for accessing the specified volume bucket. Also
- return expiry date and time of key pair (in UTC).
+ ) -> LROPoller[_models.ElasticBackupPolicy]:
+ """Create or update the specified Elastic Backup Policy in the NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket's Access and Secret key pair expiry time expressed as the number of
- days from now. Required.
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: Resource create parameters. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with
- MutableMapping
- :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials
+ :return: An instance of LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -17650,126 +28500,97 @@ def generate_credentials(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_policy_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def generate_credentials(
+ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]],
+ backup_policy_name: str,
+ body: Union[_models.ElasticBackupPolicy, _types.ElasticBackupPolicy, IO[bytes]],
**kwargs: Any
- ) -> _models.BucketGenerateCredentials:
- """Generate the access key and secret key used for accessing the specified volume bucket. Also
- return expiry date and time of key pair (in UTC).
+ ) -> LROPoller[_models.ElasticBackupPolicy]:
+ """Create or update the specified Elastic Backup Policy in the NetApp account.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The bucket's Access and Secret key pair expiry time expressed as the number of
- days from now. Is either a BucketCredentialsExpiry type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.BucketCredentialsExpiry or
- ~azure.mgmt.netapp.types.BucketCredentialsExpiry or IO[bytes]
- :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with
- MutableMapping
- :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: Resource create parameters. Is either a ElasticBackupPolicy type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupPolicy or
+ ~azure.mgmt.netapp.types.ElasticBackupPolicy or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.BucketGenerateCredentials] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticBackupPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ backup_policy_name=backup_policy_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
- content_type = content_type or "application/json"
- _content = None
- if isinstance(body, (IOBase, bytes)):
- _content = body
- else:
- _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticBackupPolicy, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
- _request = build_buckets_generate_credentials_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
- subscription_id=self._config.subscription_id,
- content_type=content_type,
- api_version=self._config.api_version,
- content=_content,
- headers=_headers,
- params=_params,
- )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- _decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
- response = pipeline_response.http_response
-
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
)
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
else:
- deserialized = _deserialize(_models.BucketGenerateCredentials, response.json())
-
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
-
- return deserialized # type: ignore
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ElasticBackupPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ElasticBackupPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
@api_version_validation(
method_added_on="2025-12-15-preview",
@@ -17779,31 +28600,25 @@ def generate_credentials(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_policy_name",
"content_type",
+ "accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def _generate_akv_credentials_initial(
+ def _update_initial(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]],
+ backup_policy_name: str,
+ body: Union[_models.ElasticBackupPolicyUpdate, _types.ElasticBackupPolicyUpdate, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -17827,12 +28642,10 @@ def _generate_akv_credentials_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_buckets_generate_akv_credentials_request(
+ _request = build_elastic_backup_policies_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_policy_name=backup_policy_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -17853,7 +28666,7 @@ def _generate_akv_credentials_initial(
response = pipeline_response.http_response
- if response.status_code not in [202]:
+ if response.status_code not in [200, 202]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -17866,11 +28679,9 @@ def _generate_akv_credentials_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -17880,113 +28691,95 @@ def _generate_akv_credentials_initial(
return deserialized # type: ignore
@overload
- def begin_generate_akv_credentials(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: _models.BucketCredentialsExpiry,
+ backup_policy_name: str,
+ body: _models.ElasticBackupPolicyUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Generate the access key and secret key used for accessing the specified volume bucket and store
- in Azure Key Vault.
+ ) -> LROPoller[_models.ElasticBackupPolicy]:
+ """Patch the specified NetApp Elastic Backup Policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The content of the action request. Required.
- :type body: ~azure.mgmt.netapp.models.BucketCredentialsExpiry
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupPolicyUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_generate_akv_credentials(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: _types.BucketCredentialsExpiry,
+ backup_policy_name: str,
+ body: _types.ElasticBackupPolicyUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Generate the access key and secret key used for accessing the specified volume bucket and store
- in Azure Key Vault.
+ ) -> LROPoller[_models.ElasticBackupPolicy]:
+ """Patch the specified NetApp Elastic Backup Policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The content of the action request. Required.
- :type body: ~azure.mgmt.netapp.types.BucketCredentialsExpiry
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ElasticBackupPolicyUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_generate_akv_credentials(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
+ backup_policy_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[None]:
- """Generate the access key and secret key used for accessing the specified volume bucket and store
- in Azure Key Vault.
+ ) -> LROPoller[_models.ElasticBackupPolicy]:
+ """Patch the specified NetApp Elastic Backup Policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The content of the action request. Required.
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: The resource properties to be updated. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :return: An instance of LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -17999,70 +28792,58 @@ def begin_generate_akv_credentials(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_policy_name",
"content_type",
+ "accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def begin_generate_akv_credentials(
+ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]],
+ backup_policy_name: str,
+ body: Union[_models.ElasticBackupPolicyUpdate, _types.ElasticBackupPolicyUpdate, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[None]:
- """Generate the access key and secret key used for accessing the specified volume bucket and store
- in Azure Key Vault.
+ ) -> LROPoller[_models.ElasticBackupPolicy]:
+ """Patch the specified NetApp Elastic Backup Policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
- :param body: The content of the action request. Is either a BucketCredentialsExpiry type or a
- IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.BucketCredentialsExpiry or
- ~azure.mgmt.netapp.types.BucketCredentialsExpiry or IO[bytes]
- :return: An instance of LROPoller that returns None
- :rtype: ~azure.core.polling.LROPoller[None]
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
+ :param body: The resource properties to be updated. Is either a ElasticBackupPolicyUpdate type
+ or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackupPolicyUpdate or
+ ~azure.mgmt.netapp.types.ElasticBackupPolicyUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is
+ compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticBackupPolicy] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._generate_akv_credentials_initial(
+ raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_policy_name=backup_policy_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -18073,9 +28854,12 @@ def begin_generate_akv_credentials(
raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
- def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ElasticBackupPolicy, response.json())
if cls:
- return cls(pipeline_response, None, {}) # type: ignore
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
@@ -18090,13 +28874,15 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
else:
polling_method = polling
if cont_token:
- return LROPoller[None].from_continuation_token(
+ return LROPoller[_models.ElasticBackupPolicy].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ return LROPoller[_models.ElasticBackupPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
@api_version_validation(
method_added_on="2025-12-15-preview",
@@ -18106,30 +28892,19 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_policy_name",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def _refresh_certificate_initial(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- **kwargs: Any
+ def _delete_initial(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -18144,12 +28919,10 @@ def _refresh_certificate_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_buckets_refresh_certificate_request(
+ _request = build_elastic_backup_policies_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_policy_name=backup_policy_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -18168,7 +28941,7 @@ def _refresh_certificate_initial(
response = pipeline_response.http_response
- if response.status_code not in [202]:
+ if response.status_code not in [202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -18181,11 +28954,9 @@ def _refresh_certificate_initial(
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- response_headers["Azure-AsyncOperation"] = self._deserialize(
- "str", response.headers.get("Azure-AsyncOperation")
- )
- response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
@@ -18203,45 +28974,29 @@ def _refresh_certificate_initial(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "volume_name",
- "bucket_name",
+ "backup_policy_name",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def begin_refresh_certificate(
- self,
- resource_group_name: str,
- account_name: str,
- pool_name: str,
- volume_name: str,
- bucket_name: str,
- **kwargs: Any
+ def begin_delete(
+ self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any
) -> LROPoller[None]:
- """This operation will fetch the certificate from Azure Key Vault and install it on the bucket
- server.
+ """Delete the specified Elastic Policy.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param volume_name: The name of the volume. Required.
- :type volume_name: str
- :param bucket_name: The name of the bucket. Required.
- :type bucket_name: str
+ :param backup_policy_name: The name of the ElasticBackupPolicy. Required.
+ :type backup_policy_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -18254,12 +29009,10 @@ def begin_refresh_certificate(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._refresh_certificate_initial(
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- volume_name=volume_name,
- bucket_name=bucket_name,
+ backup_policy_name=backup_policy_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -18293,15 +29046,130 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name", "accept"]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_elastic_account(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.ElasticBackupPolicy"]:
+ """List and describe all Elastic Backup Policies in the elastic account.
-class CachesOperations:
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the ElasticAccount. Required.
+ :type account_name: str
+ :return: An iterator like instance of ElasticBackupPolicy
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticBackupPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ElasticBackupPolicy]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_elastic_backup_policies_list_by_elastic_account_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ElasticBackupPolicy],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+
+class ElasticBackupsOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.mgmt.netapp.NetAppManagementClient`'s
- :attr:`caches` attribute.
+ :attr:`elastic_backups` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
@@ -18320,38 +29188,35 @@ def __init__(self, *args, **kwargs) -> None:
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "cache_name",
+ "backup_vault_name",
+ "backup_name",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def get(
- self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
- ) -> _models.Cache:
- """Get the details of the specified Cache.
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
+ ) -> _models.ElasticBackup:
+ """Get the specified Elastic Backup under Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :return: Cache. The Cache is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.Cache
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :return: ElasticBackup. The ElasticBackup is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ElasticBackup
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map: MutableMapping = {
@@ -18365,13 +29230,13 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticBackup] = kwargs.pop("cls", None)
- _request = build_caches_get_request(
+ _request = build_elastic_backups_get_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -18406,7 +29271,7 @@ def get(
if _stream:
deserialized = response.iter_bytes() if _decompress else response.iter_raw()
else:
- deserialized = _deserialize(_models.Cache, response.json())
+ deserialized = _deserialize(_models.ElasticBackup, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -18421,30 +29286,27 @@ def get(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "cache_name",
+ "backup_vault_name",
+ "backup_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def _create_or_update_initial(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
- body: Union[_models.Cache, _types.Cache, IO[bytes]],
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.ElasticBackup, _types.ElasticBackup, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -18468,11 +29330,11 @@ def _create_or_update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_caches_create_or_update_request(
+ _request = build_elastic_backups_create_or_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -18524,32 +29386,32 @@ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
- body: _models.Cache,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _models.ElasticBackup,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Create or update the specified Cache within the Capacity Pool.
+ ) -> LROPoller[_models.ElasticBackup]:
+ """Create an elastic backup under the elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
:param body: Resource create parameters. Required.
- :type body: ~azure.mgmt.netapp.models.Cache
+ :type body: ~azure.mgmt.netapp.models.ElasticBackup
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :return: An instance of LROPoller that returns ElasticBackup. The ElasticBackup is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -18558,32 +29420,32 @@ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
- body: _types.Cache,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _types.ElasticBackup,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Create or update the specified Cache within the Capacity Pool.
+ ) -> LROPoller[_models.ElasticBackup]:
+ """Create an elastic backup under the elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
:param body: Resource create parameters. Required.
- :type body: ~azure.mgmt.netapp.types.Cache
+ :type body: ~azure.mgmt.netapp.types.ElasticBackup
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :return: An instance of LROPoller that returns ElasticBackup. The ElasticBackup is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -18592,32 +29454,32 @@ def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
+ backup_vault_name: str,
+ backup_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Create or update the specified Cache within the Capacity Pool.
+ ) -> LROPoller[_models.ElasticBackup]:
+ """Create an elastic backup under the elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
:param body: Resource create parameters. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :return: An instance of LROPoller that returns ElasticBackup. The ElasticBackup is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -18630,55 +29492,54 @@ def begin_create_or_update(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "cache_name",
+ "backup_vault_name",
+ "backup_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def begin_create_or_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
- body: Union[_models.Cache, _types.Cache, IO[bytes]],
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.ElasticBackup, _types.ElasticBackup, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Create or update the specified Cache within the Capacity Pool.
+ ) -> LROPoller[_models.ElasticBackup]:
+ """Create an elastic backup under the elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :param body: Resource create parameters. Is either a Cache type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.Cache or ~azure.mgmt.netapp.types.Cache or IO[bytes]
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: Resource create parameters. Is either a ElasticBackup type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackup or ~azure.mgmt.netapp.types.ElasticBackup
+ or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticBackup. The ElasticBackup is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticBackup] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -18686,8 +29547,8 @@ def begin_create_or_update(
raw_result = self._create_or_update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -18700,7 +29561,7 @@ def begin_create_or_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Cache, response.json())
+ deserialized = _deserialize(_models.ElasticBackup, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -18718,13 +29579,13 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Cache].from_continuation_token(
+ return LROPoller[_models.ElasticBackup].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Cache](
+ return LROPoller[_models.ElasticBackup](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
@@ -18736,30 +29597,27 @@ def get_long_running_output(pipeline_response):
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "cache_name",
+ "backup_vault_name",
+ "backup_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def _update_initial(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
- body: Union[_models.CacheUpdate, _types.CacheUpdate, IO[bytes]],
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.ElasticBackup, _types.ElasticBackup, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -18783,11 +29641,11 @@ def _update_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_caches_update_request(
+ _request = build_elastic_backups_update_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -18840,32 +29698,32 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
- body: _models.CacheUpdate,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _models.ElasticBackup,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Patch the specified Cache.
+ ) -> LROPoller[_models.ElasticBackup]:
+ """Patch an elastic Backup under the Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
:param body: The resource properties to be updated. Required.
- :type body: ~azure.mgmt.netapp.models.CacheUpdate
+ :type body: ~azure.mgmt.netapp.models.ElasticBackup
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :return: An instance of LROPoller that returns ElasticBackup. The ElasticBackup is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -18874,32 +29732,32 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
- body: _types.CacheUpdate,
+ backup_vault_name: str,
+ backup_name: str,
+ body: _types.ElasticBackup,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Patch the specified Cache.
+ ) -> LROPoller[_models.ElasticBackup]:
+ """Patch an elastic Backup under the Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
:param body: The resource properties to be updated. Required.
- :type body: ~azure.mgmt.netapp.types.CacheUpdate
+ :type body: ~azure.mgmt.netapp.types.ElasticBackup
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :return: An instance of LROPoller that returns ElasticBackup. The ElasticBackup is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -18908,32 +29766,32 @@ def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
+ backup_vault_name: str,
+ backup_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Patch the specified Cache.
+ ) -> LROPoller[_models.ElasticBackup]:
+ """Patch an elastic Backup under the Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
:param body: The resource properties to be updated. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :return: An instance of LROPoller that returns ElasticBackup. The ElasticBackup is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -18946,57 +29804,54 @@ def begin_update(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "cache_name",
+ "backup_vault_name",
+ "backup_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def begin_update(
self,
resource_group_name: str,
account_name: str,
- pool_name: str,
- cache_name: str,
- body: Union[_models.CacheUpdate, _types.CacheUpdate, IO[bytes]],
+ backup_vault_name: str,
+ backup_name: str,
+ body: Union[_models.ElasticBackup, _types.ElasticBackup, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Patch the specified Cache.
+ ) -> LROPoller[_models.ElasticBackup]:
+ """Patch an elastic Backup under the Elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :param body: The resource properties to be updated. Is either a CacheUpdate type or a IO[bytes]
- type. Required.
- :type body: ~azure.mgmt.netapp.models.CacheUpdate or ~azure.mgmt.netapp.types.CacheUpdate or
- IO[bytes]
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
+ :param body: The resource properties to be updated. Is either a ElasticBackup type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ElasticBackup or ~azure.mgmt.netapp.types.ElasticBackup
+ or IO[bytes]
+ :return: An instance of LROPoller that returns ElasticBackup. The ElasticBackup is compatible
+ with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ElasticBackup] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
@@ -19004,8 +29859,8 @@ def begin_update(
raw_result = self._update_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -19018,7 +29873,7 @@ def begin_update(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Cache, response.json())
+ deserialized = _deserialize(_models.ElasticBackup, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -19036,13 +29891,13 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Cache].from_continuation_token(
+ return LROPoller[_models.ElasticBackup].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Cache](
+ return LROPoller[_models.ElasticBackup](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
@@ -19054,23 +29909,20 @@ def get_long_running_output(pipeline_response):
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "cache_name",
+ "backup_vault_name",
+ "backup_name",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def _delete_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -19085,11 +29937,11 @@ def _delete_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_caches_delete_request(
+ _request = build_elastic_backups_delete_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -19141,35 +29993,32 @@ def _delete_initial(
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
- "cache_name",
+ "backup_vault_name",
+ "backup_name",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
def begin_delete(
- self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any
) -> LROPoller[None]:
- """Delete the specified cache.
+ """Delete a ElasticBackup.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :param backup_name: The name of the ElasticBackup. Required.
+ :type backup_name: str
:return: An instance of LROPoller that returns None
:rtype: ~azure.core.polling.LROPoller[None]
:raises ~azure.core.exceptions.HttpResponseError:
@@ -19185,8 +30034,8 @@ def begin_delete(
raw_result = self._delete_initial(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ backup_vault_name=backup_vault_name,
+ backup_name=backup_name,
cls=lambda x, y, z: x,
headers=_headers,
params=_params,
@@ -19222,47 +30071,45 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
@distributed_trace
@api_version_validation(
- method_added_on="2026-01-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2026-01-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
"account_name",
- "pool_name",
+ "backup_vault_name",
"accept",
]
},
api_versions_list=[
- "2026-01-01",
+ "2025-12-15-preview",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def list(
- self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any
- ) -> ItemPaged["_models.Cache"]:
- """List all Caches within the Capacity Pool.
+ def list_by_vault(
+ self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.ElasticBackup"]:
+ """List all elastic backups Under an elastic Backup Vault.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
+ :param account_name: The name of the ElasticAccount. Required.
:type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :return: An iterator like instance of Cache
- :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Cache]
+ :param backup_vault_name: The name of the ElasticBackupVault. Required.
+ :type backup_vault_name: str
+ :return: An iterator like instance of ElasticBackup
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticBackup]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[List[_models.Cache]] = kwargs.pop("cls", None)
+ cls: ClsType[List[_models.ElasticBackup]] = kwargs.pop("cls", None)
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -19275,10 +30122,10 @@ def list(
def prepare_request(next_link=None):
if not next_link:
- _request = build_caches_list_request(
+ _request = build_elastic_backups_list_by_vault_request(
resource_group_name=resource_group_name,
account_name=account_name,
- pool_name=pool_name,
+ backup_vault_name=backup_vault_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -19319,33 +30166,323 @@ def prepare_request(next_link=None):
def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = _deserialize(
- List[_models.Cache],
+ List[_models.ElasticBackup],
deserialized.get("value", []),
)
if cls:
list_of_elem = cls(list_of_elem) # type: ignore
return deserialized.get("nextLink") or None, iter(list_of_elem)
- def get_next(next_link=None):
- _request = prepare_request(next_link)
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+
+class ActiveDirectoryConfigsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.netapp.NetAppManagementClient`'s
+ :attr:`active_directory_configs` attribute.
+ """
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config: NetAppManagementClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def get(
+ self, resource_group_name: str, active_directory_config_name: str, **kwargs: Any
+ ) -> _models.ActiveDirectoryConfig:
+ """Get the details of the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :return: ActiveDirectoryConfig. The ActiveDirectoryConfig is compatible with MutableMapping
+ :rtype: ~azure.mgmt.netapp.models.ActiveDirectoryConfig
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[_models.ActiveDirectoryConfig] = kwargs.pop("cls", None)
+
+ _request = build_active_directory_configs_get_request(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = kwargs.pop("stream", False)
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ if _stream:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ if _stream:
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ else:
+ deserialized = _deserialize(_models.ActiveDirectoryConfig, response.json())
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={
+ "2025-12-15-preview": [
+ "api_version",
+ "subscription_id",
+ "resource_group_name",
+ "active_directory_config_name",
+ "content_type",
+ "accept",
+ ]
+ },
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: Union[_models.ActiveDirectoryConfig, _types.ActiveDirectoryConfig, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = kwargs.pop("params", {}) or {}
+
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
+
+ _request = build_active_directory_configs_create_or_update_request(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ subscription_id=self._config.subscription_id,
+ content_type=content_type,
+ api_version=self._config.api_version,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 201:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: _models.ActiveDirectoryConfig,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ActiveDirectoryConfig]:
+ """Create or update the specified active directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.models.ActiveDirectoryConfig
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
- _stream = False
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
- response = pipeline_response.http_response
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: _types.ActiveDirectoryConfig,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ActiveDirectoryConfig]:
+ """Create or update the specified active directory configuration.
- if response.status_code not in [200]:
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
- )
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: Resource create parameters. Required.
+ :type body: ~azure.mgmt.netapp.types.ActiveDirectoryConfig
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
- return pipeline_response
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ActiveDirectoryConfig]:
+ """Create or update the specified active directory configuration.
- return ItemPaged(get_next, extract_data)
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: Resource create parameters. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
@distributed_trace
@api_version_validation(
@@ -19355,100 +30492,93 @@ def get_next(next_link=None):
"api_version",
"subscription_id",
"resource_group_name",
- "account_name",
- "pool_name",
- "cache_name",
+ "active_directory_config_name",
+ "content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def list_peering_passphrases(
- self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
- ) -> _models.PeeringPassphrases:
- """This operation will list the cluster peering command, cluster peering passphrase and the
- vserver peering command.
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ active_directory_config_name: str,
+ body: Union[_models.ActiveDirectoryConfig, _types.ActiveDirectoryConfig, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.ActiveDirectoryConfig]:
+ """Create or update the specified active directory configuration.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :return: PeeringPassphrases. The PeeringPassphrases is compatible with MutableMapping
- :rtype: ~azure.mgmt.netapp.models.PeeringPassphrases
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: Resource create parameters. Is either a ActiveDirectoryConfig type or a IO[bytes]
+ type. Required.
+ :type body: ~azure.mgmt.netapp.models.ActiveDirectoryConfig or
+ ~azure.mgmt.netapp.types.ActiveDirectoryConfig or IO[bytes]
+ :return: An instance of LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map: MutableMapping = {
- 401: ClientAuthenticationError,
- 404: ResourceNotFoundError,
- 409: ResourceExistsError,
- 304: ResourceNotModifiedError,
- }
- error_map.update(kwargs.pop("error_map", {}) or {})
-
- _headers = kwargs.pop("headers", {}) or {}
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
- cls: ClsType[_models.PeeringPassphrases] = kwargs.pop("cls", None)
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ActiveDirectoryConfig] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ body=body,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ response = pipeline_response.http_response
+ deserialized = _deserialize(_models.ActiveDirectoryConfig, response.json())
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
- _request = build_caches_list_peering_passphrases_request(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
- subscription_id=self._config.subscription_id,
- api_version=self._config.api_version,
- headers=_headers,
- params=_params,
- )
path_format_arguments = {
"endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
}
- _request.url = self._client.format_url(_request.url, **path_format_arguments)
-
- _decompress = kwargs.pop("decompress", True)
- _stream = kwargs.pop("stream", False)
- pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
- _request, stream=_stream, **kwargs
- )
-
- response = pipeline_response.http_response
- if response.status_code not in [200]:
- if _stream:
- try:
- response.read() # Load the body in memory and close the socket
- except (StreamConsumedError, StreamClosedError):
- pass
- map_error(status_code=response.status_code, response=response, error_map=error_map)
- error = _failsafe_deserialize(
- _models.ErrorResponse,
- response,
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
)
- raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
-
- if _stream:
- deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
else:
- deserialized = _deserialize(_models.PeeringPassphrases, response.json())
-
- if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
-
- return deserialized # type: ignore
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ActiveDirectoryConfig].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ActiveDirectoryConfig](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
@api_version_validation(
method_added_on="2025-12-15-preview",
@@ -19457,31 +30587,24 @@ def list_peering_passphrases(
"api_version",
"subscription_id",
"resource_group_name",
- "account_name",
- "pool_name",
- "cache_name",
+ "active_directory_config_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def _pool_change_initial(
+ def _update_initial(
self,
resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]],
+ active_directory_config_name: str,
+ body: Union[_models.ActiveDirectoryConfigUpdate, _types.ActiveDirectoryConfigUpdate, IO[bytes]],
**kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
@@ -19505,11 +30628,9 @@ def _pool_change_initial(
else:
_content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore
- _request = build_caches_pool_change_request(
+ _request = build_active_directory_configs_update_request(
resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ active_directory_config_name=active_directory_config_name,
subscription_id=self._config.subscription_id,
content_type=content_type,
api_version=self._config.api_version,
@@ -19544,6 +30665,9 @@ def _pool_change_initial(
response_headers = {}
if response.status_code == 202:
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
@@ -19555,104 +30679,86 @@ def _pool_change_initial(
return deserialized # type: ignore
@overload
- def begin_pool_change(
+ def begin_update(
self,
resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: _models.PoolChangeRequest,
+ active_directory_config_name: str,
+ body: _models.ActiveDirectoryConfigUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Moves Cache to another Capacity Pool.
+ ) -> LROPoller[_models.ActiveDirectoryConfig]:
+ """Patch the specified active directory configuration.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :param body: Move cache to the pool supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.models.PoolChangeRequest
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.models.ActiveDirectoryConfigUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :return: An instance of LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_pool_change(
+ def begin_update(
self,
resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: _types.PoolChangeRequest,
+ active_directory_config_name: str,
+ body: _types.ActiveDirectoryConfigUpdate,
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Moves Cache to another Capacity Pool.
+ ) -> LROPoller[_models.ActiveDirectoryConfig]:
+ """Patch the specified active directory configuration.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :param body: Move cache to the pool supplied in the body of the operation. Required.
- :type body: ~azure.mgmt.netapp.types.PoolChangeRequest
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: The resource properties to be updated. Required.
+ :type body: ~azure.mgmt.netapp.types.ActiveDirectoryConfigUpdate
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :return: An instance of LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@overload
- def begin_pool_change(
+ def begin_update(
self,
resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
+ active_directory_config_name: str,
body: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Moves Cache to another Capacity Pool.
+ ) -> LROPoller[_models.ActiveDirectoryConfig]:
+ """Patch the specified active directory configuration.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :param body: Move cache to the pool supplied in the body of the operation. Required.
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: The resource properties to be updated. Required.
:type body: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
- :paramtype content_type: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
:raises ~azure.core.exceptions.HttpResponseError:
"""
@@ -19664,67 +30770,54 @@ def begin_pool_change(
"api_version",
"subscription_id",
"resource_group_name",
- "account_name",
- "pool_name",
- "cache_name",
+ "active_directory_config_name",
"content_type",
"accept",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def begin_pool_change(
+ def begin_update(
self,
resource_group_name: str,
- account_name: str,
- pool_name: str,
- cache_name: str,
- body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]],
+ active_directory_config_name: str,
+ body: Union[_models.ActiveDirectoryConfigUpdate, _types.ActiveDirectoryConfigUpdate, IO[bytes]],
**kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Moves Cache to another Capacity Pool.
+ ) -> LROPoller[_models.ActiveDirectoryConfig]:
+ """Patch the specified active directory configuration.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :param body: Move cache to the pool supplied in the body of the operation. Is either a
- PoolChangeRequest type or a IO[bytes] type. Required.
- :type body: ~azure.mgmt.netapp.models.PoolChangeRequest or
- ~azure.mgmt.netapp.types.PoolChangeRequest or IO[bytes]
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :param body: The resource properties to be updated. Is either a ActiveDirectoryConfigUpdate
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.netapp.models.ActiveDirectoryConfigUpdate or
+ ~azure.mgmt.netapp.types.ActiveDirectoryConfigUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig
+ is compatible with MutableMapping
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
:raises ~azure.core.exceptions.HttpResponseError:
"""
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
+ cls: ClsType[_models.ActiveDirectoryConfig] = kwargs.pop("cls", None)
polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._pool_change_initial(
+ raw_result = self._update_initial(
resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ active_directory_config_name=active_directory_config_name,
body=body,
content_type=content_type,
cls=lambda x, y, z: x,
@@ -19737,7 +30830,7 @@ def begin_pool_change(
def get_long_running_output(pipeline_response):
response = pipeline_response.http_response
- deserialized = _deserialize(_models.Cache, response.json())
+ deserialized = _deserialize(_models.ActiveDirectoryConfig, response.json())
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -19755,13 +30848,13 @@ def get_long_running_output(pipeline_response):
else:
polling_method = polling
if cont_token:
- return LROPoller[_models.Cache].from_continuation_token(
+ return LROPoller[_models.ActiveDirectoryConfig].from_continuation_token(
polling_method=polling_method,
continuation_token=cont_token,
client=self._client,
deserialization_callback=get_long_running_output,
)
- return LROPoller[_models.Cache](
+ return LROPoller[_models.ActiveDirectoryConfig](
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
@@ -19772,25 +30865,19 @@ def get_long_running_output(pipeline_response):
"api_version",
"subscription_id",
"resource_group_name",
- "account_name",
- "pool_name",
- "cache_name",
- "accept",
+ "active_directory_config_name",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def _reset_smb_password_initial(
- self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
+ def _delete_initial(
+ self, resource_group_name: str, active_directory_config_name: str, **kwargs: Any
) -> Iterator[bytes]:
error_map: MutableMapping = {
401: ClientAuthenticationError,
@@ -19805,11 +30892,9 @@ def _reset_smb_password_initial(
cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
- _request = build_caches_reset_smb_password_request(
+ _request = build_active_directory_configs_delete_request(
resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
+ active_directory_config_name=active_directory_config_name,
subscription_id=self._config.subscription_id,
api_version=self._config.api_version,
headers=_headers,
@@ -19828,7 +30913,7 @@ def _reset_smb_password_initial(
response = pipeline_response.http_response
- if response.status_code not in [200, 202]:
+ if response.status_code not in [202, 204]:
try:
response.read() # Load the body in memory and close the socket
except (StreamConsumedError, StreamClosedError):
@@ -19860,92 +30945,288 @@ def _reset_smb_password_initial(
"api_version",
"subscription_id",
"resource_group_name",
- "account_name",
- "pool_name",
- "cache_name",
- "accept",
+ "active_directory_config_name",
]
},
api_versions_list=[
"2025-12-15-preview",
- "2026-01-01",
"2026-01-15-preview",
- "2026-03-01",
"2026-03-15-preview",
- "2026-04-01",
"2026-04-15-preview",
- "2026-05-01",
+ "2026-05-15-preview",
],
)
- def begin_reset_smb_password(
- self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any
- ) -> LROPoller[_models.Cache]:
- """Resets the SMB password for the cache.
+ def begin_delete(
+ self, resource_group_name: str, active_directory_config_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Delete the specified Active Directory configuration.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param active_directory_config_name: The name of the ActiveDirectoryConfig. Required.
+ :type active_directory_config_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._delete_initial(
+ resource_group_name=resource_group_name,
+ active_directory_config_name=active_directory_config_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={"2025-12-15-preview": ["api_version", "subscription_id", "resource_group_name", "accept"]},
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_resource_group(
+ self, resource_group_name: str, **kwargs: Any
+ ) -> ItemPaged["_models.ActiveDirectoryConfig"]:
+ """List all active directory configurations within the resource group.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :return: An iterator like instance of ActiveDirectoryConfig
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ActiveDirectoryConfig]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_active_directory_configs_list_by_resource_group_request(
+ resource_group_name=resource_group_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ActiveDirectoryConfig],
+ deserialized.get("value", []),
+ )
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2025-12-15-preview",
+ params_added_on={"2025-12-15-preview": ["api_version", "subscription_id", "accept"]},
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
+ )
+ def list_by_subscription(self, **kwargs: Any) -> ItemPaged["_models.ActiveDirectoryConfig"]:
+ """List all active directory configurations within the subscription.
+
+ :return: An iterator like instance of ActiveDirectoryConfig
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ActiveDirectoryConfig]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[List[_models.ActiveDirectoryConfig]] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_active_directory_configs_list_by_subscription_request(
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- :param resource_group_name: The name of the resource group. The name is case insensitive.
- Required.
- :type resource_group_name: str
- :param account_name: The name of the NetApp account. Required.
- :type account_name: str
- :param pool_name: The name of the capacity pool. Required.
- :type pool_name: str
- :param cache_name: The name of the cache resource. Required.
- :type cache_name: str
- :return: An instance of LROPoller that returns Cache. The Cache is compatible with
- MutableMapping
- :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache]
- :raises ~azure.core.exceptions.HttpResponseError:
- """
- _headers = kwargs.pop("headers", {}) or {}
- _params = kwargs.pop("params", {}) or {}
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET",
+ urllib.parse.urljoin(next_link, _parsed_next_link.path),
+ headers=_headers,
+ params=_next_request_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url(
+ "self._config.base_url", self._config.base_url, "str", skip_quote=True
+ ),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
- cls: ClsType[_models.Cache] = kwargs.pop("cls", None)
- polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
- lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
- cont_token: Optional[str] = kwargs.pop("continuation_token", None)
- if cont_token is None:
- raw_result = self._reset_smb_password_initial(
- resource_group_name=resource_group_name,
- account_name=account_name,
- pool_name=pool_name,
- cache_name=cache_name,
- cls=lambda x, y, z: x,
- headers=_headers,
- params=_params,
- **kwargs
- )
- raw_result.http_response.read() # type: ignore
- kwargs.pop("error_map", None)
+ return _request
- def get_long_running_output(pipeline_response):
- response = pipeline_response.http_response
- deserialized = _deserialize(_models.Cache, response.json())
+ def extract_data(pipeline_response):
+ deserialized = pipeline_response.http_response.json()
+ list_of_elem = _deserialize(
+ List[_models.ActiveDirectoryConfig],
+ deserialized.get("value", []),
+ )
if cls:
- return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.get("nextLink") or None, iter(list_of_elem)
- path_format_arguments = {
- "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
- }
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
- if polling is True:
- polling_method: PollingMethod = cast(
- PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
- )
- elif polling is False:
- polling_method = cast(PollingMethod, NoPolling())
- else:
- polling_method = polling
- if cont_token:
- return LROPoller[_models.Cache].from_continuation_token(
- polling_method=polling_method,
- continuation_token=cont_token,
- client=self._client,
- deserialization_callback=get_long_running_output,
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
- return LROPoller[_models.Cache](
- self._client, raw_result, get_long_running_output, polling_method # type: ignore
- )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
class NetAppResourceQuotaLimitsOperations:
@@ -20636,9 +31917,9 @@ def get_long_running_output(pipeline_response):
)
@api_version_validation(
- method_added_on="2026-01-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2026-01-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
@@ -20647,7 +31928,13 @@ def get_long_running_output(pipeline_response):
"accept",
]
},
- api_versions_list=["2026-01-01", "2026-03-01", "2026-04-01", "2026-05-01"],
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
)
def _update_initial(
self,
@@ -20810,9 +32097,9 @@ def begin_update(
@distributed_trace
@api_version_validation(
- method_added_on="2026-01-01",
+ method_added_on="2025-12-15-preview",
params_added_on={
- "2026-01-01": [
+ "2025-12-15-preview": [
"api_version",
"subscription_id",
"resource_group_name",
@@ -20821,7 +32108,13 @@ def begin_update(
"accept",
]
},
- api_versions_list=["2026-01-01", "2026-03-01", "2026-04-01", "2026-05-01"],
+ api_versions_list=[
+ "2025-12-15-preview",
+ "2026-01-15-preview",
+ "2026-03-15-preview",
+ "2026-04-15-preview",
+ "2026-05-15-preview",
+ ],
)
def begin_update(
self,
@@ -21938,6 +33231,142 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+ @api_version_validation(
+ method_added_on="2026-04-15-preview",
+ params_added_on={
+ "2026-04-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name"]
+ },
+ api_versions_list=["2026-04-15-preview", "2026-05-15-preview"],
+ )
+ def _refresh_ldap_bind_password_initial(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_accounts_refresh_ldap_bind_password_request(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ subscription_id=self._config.subscription_id,
+ api_version=self._config.api_version,
+ headers=_headers,
+ params=_params,
+ )
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+ _request.url = self._client.format_url(_request.url, **path_format_arguments)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = _failsafe_deserialize(
+ _models.ErrorResponse,
+ response,
+ )
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After"))
+
+ deserialized = response.iter_bytes() if _decompress else response.iter_raw()
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ @api_version_validation(
+ method_added_on="2026-04-15-preview",
+ params_added_on={
+ "2026-04-15-preview": ["api_version", "subscription_id", "resource_group_name", "account_name"]
+ },
+ api_versions_list=["2026-04-15-preview", "2026-05-15-preview"],
+ )
+ def begin_refresh_ldap_bind_password(
+ self, resource_group_name: str, account_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Refresh LDAP Bind DN password by fetching the latest password from Azure Key Vault.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param account_name: The name of the NetApp account. Required.
+ :type account_name: str
+ :return: An instance of LROPoller that returns None
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = kwargs.pop("params", {}) or {}
+
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._refresh_ldap_bind_password_initial(
+ resource_group_name=resource_group_name,
+ account_name=account_name,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ path_format_arguments = {
+ "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True),
+ }
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
class BackupsUnderAccountOperations:
"""
diff --git a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/types.py b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/types.py
index e331aa565c03..c9cf66e11479 100644
--- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/types.py
+++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/types.py
@@ -18,6 +18,7 @@
ApplicationType,
AvsDataStore,
BackupType,
+ BindAuthenticationLevel,
BreakthroughMode,
BucketPatchPermissions,
BucketPermissions,
@@ -32,7 +33,22 @@
CoolAccessTieringPolicy,
CreatedByType,
CredentialsStatus,
+ DayOfWeek,
DesiredRansomwareProtectionState,
+ ElasticBackupPolicyState,
+ ElasticBackupType,
+ ElasticKeyVaultStatus,
+ ElasticNfsv3Access,
+ ElasticNfsv4Access,
+ ElasticPoolEncryptionKeySource,
+ ElasticProtocolType,
+ ElasticResourceAvailabilityStatus,
+ ElasticRootAccess,
+ ElasticServiceLevel,
+ ElasticSmbEncryption,
+ ElasticUnixAccessRule,
+ ElasticVolumePolicyEnforcement,
+ ElasticVolumeRestorationState,
EnableSubvolumes,
EnableWriteBackState,
EncryptionKeySource,
@@ -46,6 +62,7 @@
KerberosState,
KeySource,
KeyVaultStatus,
+ LargeVolumeType,
LdapServerType,
LdapState,
ManagedServiceIdentityType,
@@ -54,6 +71,7 @@
NetAppProvisioningState,
NetworkFeatures,
OnCertificateConflictAction,
+ PolicyStatus,
ProtocolTypes,
QosType,
QuotaType,
@@ -65,8 +83,11 @@
SmbAccessBasedEnumeration,
SmbEncryptionState,
SmbNonBrowsable,
+ SnapshotDirectoryVisibility,
+ SnapshotUsage,
VolumeLanguage,
VolumeReplicationRelationshipStatus,
+ VolumeSize,
VolumeStorageToNetworkProximity,
)
@@ -102,6 +123,8 @@ class AccountProperties(TypedDict, total=False):
:vartype provisioning_state: str
:ivar active_directories: Active Directories.
:vartype active_directories: list["ActiveDirectory"]
+ :ivar entra_id_config: Entra ID configuration for the account.
+ :vartype entra_id_config: "EntraIdConfig"
:ivar encryption: Encryption settings.
:vartype encryption: "AccountEncryption"
:ivar disable_showmount: Shows the status of disableShowmount for all volumes under the
@@ -113,12 +136,16 @@ class AccountProperties(TypedDict, total=False):
:ivar multi_ad_status: MultiAD Status for the account. Known values are: "Disabled" and
"Enabled".
:vartype multi_ad_status: Union[str, "MultiAdStatus"]
+ :ivar ldap_configuration: LDAP Configuration for the account.
+ :vartype ldap_configuration: "LdapConfiguration"
"""
provisioningState: str
"""Azure lifecycle management."""
activeDirectories: list["ActiveDirectory"]
"""Active Directories."""
+ entraIdConfig: "EntraIdConfig"
+ """Entra ID configuration for the account."""
encryption: "AccountEncryption"
"""Encryption settings."""
disableShowmount: Optional[bool]
@@ -128,6 +155,37 @@ class AccountProperties(TypedDict, total=False):
subscription and region and only affect non ldap NFSv4 volumes."""
multiAdStatus: Union[str, "MultiAdStatus"]
"""MultiAD Status for the account. Known values are: \"Disabled\" and \"Enabled\"."""
+ ldapConfiguration: "LdapConfiguration"
+ """LDAP Configuration for the account."""
+
+
+class AccountPropertiesPatch(TypedDict, total=False):
+ """NetApp account patch properties.
+
+ :ivar active_directories: Active Directories.
+ :vartype active_directories: list["ActiveDirectory"]
+ :ivar encryption: Encryption settings.
+ :vartype encryption: "AccountEncryption"
+ :ivar nfs_v4_id_domain: Domain for NFSv4 user ID mapping. This property will be set for all
+ NetApp accounts in the subscription and region and only affect non ldap NFSv4 volumes.
+ :vartype nfs_v4_id_domain: str
+ :ivar entra_id_config: Entra ID configuration for the account.
+ :vartype entra_id_config: "EntraIdConfigPatch"
+ :ivar ldap_configuration: LDAP Configuration for the account.
+ :vartype ldap_configuration: "LdapConfigurationPatch"
+ """
+
+ activeDirectories: list["ActiveDirectory"]
+ """Active Directories."""
+ encryption: "AccountEncryption"
+ """Encryption settings."""
+ nfsV4IDDomain: Optional[str]
+ """Domain for NFSv4 user ID mapping. This property will be set for all NetApp accounts in the
+ subscription and region and only affect non ldap NFSv4 volumes."""
+ entraIdConfig: "EntraIdConfigPatch"
+ """Entra ID configuration for the account."""
+ ldapConfiguration: "LdapConfigurationPatch"
+ """LDAP Configuration for the account."""
class ActiveDirectory(TypedDict, total=False):
@@ -255,6 +313,245 @@ class ActiveDirectory(TypedDict, total=False):
separated IPv4 addresses can be passed."""
+class Resource(TypedDict, total=False):
+ """Resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ """
+
+ id: str
+ """Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}."""
+ name: str
+ """The name of the resource."""
+ type: str
+ """The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or
+ \"Microsoft.Storage/storageAccounts\"."""
+ systemData: "SystemData"
+ """Azure Resource Manager metadata containing createdBy and modifiedBy information."""
+
+
+class TrackedResource(Resource):
+ """Tracked Resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ """
+
+ tags: dict[str, str]
+ """Resource tags."""
+ location: Required[str]
+ """The geo-location where the resource lives. Required."""
+
+
+class ActiveDirectoryConfig(TrackedResource):
+ """Active Directory Configuration resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ActiveDirectoryConfigProperties"
+ :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
+ :vartype etag: str
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: "ManagedServiceIdentity"
+ """
+
+ properties: "ActiveDirectoryConfigProperties"
+ """The resource-specific properties for this resource."""
+ etag: str
+ """\"If etag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")."""
+ identity: "ManagedServiceIdentity"
+ """The managed service identities assigned to this resource."""
+
+
+class ActiveDirectoryConfigProperties(TypedDict, total=False):
+ """Active Directory Configuration properties.
+
+ :ivar user_name: A domain user account with permission to create machine accounts.
+ :vartype user_name: str
+ :ivar dns: An array of DNS server IP addresses(IPv4 only) for the Active Directory.
+ :vartype dns: list[str]
+ :ivar smb_server_name: NetBIOS name of the SMB server. This name will be registered as a
+ computer account in the AD and used to mount volumes.
+ :vartype smb_server_name: str
+ :ivar organizational_unit: The Organizational Unit (OU) within the Windows Active Directory.
+ :vartype organizational_unit: str
+ :ivar site: The Active Directory site the service will limit Domain Controller discovery to.
+ Required.
+ :vartype site: str
+ :ivar backup_operators: Users to be added to the Built-in Backup Operator active directory
+ group. A list of unique usernames without domain specifier.
+ :vartype backup_operators: list[str]
+ :ivar administrators: Users to be added to the Built-in Administrators active directory group.
+ A list of unique usernames without domain specifier.
+ :vartype administrators: list[str]
+ :ivar security_operators: Domain Users in the Active directory to be given SecurityPrivilege
+ privilege (Needed for SMB Continuously available shares for SQL). A list of unique usernames
+ without domain specifier.
+ :vartype security_operators: list[str]
+ :ivar active_directory_status: Status of the Active Directory. Known values are: "Created",
+ "InUse", "Deleted", "Error", and "Updating".
+ :vartype active_directory_status: Union[str, "ActiveDirectoryStatus"]
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ :ivar domain: Name of the Active Directory domain. Required.
+ :vartype domain: str
+ :ivar secret_password: Access password from Azure KeyVault Secrets to connect Active Directory.
+ Required.
+ :vartype secret_password: "SecretPassword"
+ """
+
+ userName: str
+ """A domain user account with permission to create machine accounts."""
+ dns: list[str]
+ """An array of DNS server IP addresses(IPv4 only) for the Active Directory."""
+ smbServerName: str
+ """NetBIOS name of the SMB server. This name will be registered as a computer account in the AD
+ and used to mount volumes."""
+ organizationalUnit: str
+ """The Organizational Unit (OU) within the Windows Active Directory."""
+ site: Required[str]
+ """The Active Directory site the service will limit Domain Controller discovery to. Required."""
+ backupOperators: list[str]
+ """Users to be added to the Built-in Backup Operator active directory group. A list of unique
+ usernames without domain specifier."""
+ administrators: list[str]
+ """Users to be added to the Built-in Administrators active directory group. A list of unique
+ usernames without domain specifier."""
+ securityOperators: list[str]
+ """Domain Users in the Active directory to be given SecurityPrivilege privilege (Needed for SMB
+ Continuously available shares for SQL). A list of unique usernames without domain specifier."""
+ activeDirectoryStatus: Union[str, "ActiveDirectoryStatus"]
+ """Status of the Active Directory. Known values are: \"Created\", \"InUse\", \"Deleted\",
+ \"Error\", and \"Updating\"."""
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ domain: Required[str]
+ """Name of the Active Directory domain. Required."""
+ secretPassword: Required["SecretPassword"]
+ """Access password from Azure KeyVault Secrets to connect Active Directory. Required."""
+
+
+class ActiveDirectoryConfigUpdate(TypedDict, total=False):
+ """The type used for update operations of the ActiveDirectoryConfig.
+
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: "ManagedServiceIdentity"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ActiveDirectoryConfigUpdateProperties"
+ """
+
+ identity: "ManagedServiceIdentity"
+ """The managed service identities assigned to this resource."""
+ tags: dict[str, str]
+ """Resource tags."""
+ properties: "ActiveDirectoryConfigUpdateProperties"
+ """The resource-specific properties for this resource."""
+
+
+class ActiveDirectoryConfigUpdateProperties(TypedDict, total=False):
+ """The updatable properties of the ActiveDirectoryConfig.
+
+ :ivar user_name: A domain user account with permission to create machine accounts.
+ :vartype user_name: str
+ :ivar dns: An array of DNS server IP addresses(IPv4 only) for the Active Directory.
+ :vartype dns: list[str]
+ :ivar smb_server_name: NetBIOS name of the SMB server. This name will be registered as a
+ computer account in the AD and used to mount volumes.
+ :vartype smb_server_name: str
+ :ivar organizational_unit: The Organizational Unit (OU) within the Windows Active Directory.
+ :vartype organizational_unit: str
+ :ivar site: The Active Directory site the service will limit Domain Controller discovery to.
+ :vartype site: str
+ :ivar backup_operators: Users to be added to the Built-in Backup Operator active directory
+ group. A list of unique usernames without domain specifier.
+ :vartype backup_operators: list[str]
+ :ivar administrators: Users to be added to the Built-in Administrators active directory group.
+ A list of unique usernames without domain specifier.
+ :vartype administrators: list[str]
+ :ivar security_operators: Domain Users in the Active directory to be given SecurityPrivilege
+ privilege (Needed for SMB Continuously available shares for SQL). A list of unique usernames
+ without domain specifier.
+ :vartype security_operators: list[str]
+ :ivar domain: Name of the Active Directory domain.
+ :vartype domain: str
+ :ivar secret_password: Access password from Azure KeyVault Secrets to connect Active Directory.
+ :vartype secret_password: "SecretPassword"
+ """
+
+ userName: str
+ """A domain user account with permission to create machine accounts."""
+ dns: list[str]
+ """An array of DNS server IP addresses(IPv4 only) for the Active Directory."""
+ smbServerName: str
+ """NetBIOS name of the SMB server. This name will be registered as a computer account in the AD
+ and used to mount volumes."""
+ organizationalUnit: str
+ """The Organizational Unit (OU) within the Windows Active Directory."""
+ site: str
+ """The Active Directory site the service will limit Domain Controller discovery to."""
+ backupOperators: list[str]
+ """Users to be added to the Built-in Backup Operator active directory group. A list of unique
+ usernames without domain specifier."""
+ administrators: list[str]
+ """Users to be added to the Built-in Administrators active directory group. A list of unique
+ usernames without domain specifier."""
+ securityOperators: list[str]
+ """Domain Users in the Active directory to be given SecurityPrivilege privilege (Needed for SMB
+ Continuously available shares for SQL). A list of unique usernames without domain specifier."""
+ domain: str
+ """Name of the Active Directory domain."""
+ secretPassword: "SecretPassword"
+ """Access password from Azure KeyVault Secrets to connect Active Directory."""
+
+
class AuthorizeRequest(TypedDict, total=False):
"""Authorize request.
@@ -296,34 +593,6 @@ class AzureKeyVaultDetails(TypedDict, total=False):
"""Specifies the Azure Key Vault settings for storing the bucket credentials."""
-class Resource(TypedDict, total=False):
- """Resource.
-
- :ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
- :vartype id: str
- :ivar name: The name of the resource.
- :vartype name: str
- :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
- "Microsoft.Storage/storageAccounts".
- :vartype type: str
- :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
- information.
- :vartype system_data: "SystemData"
- """
-
- id: str
- """Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}."""
- name: str
- """The name of the resource."""
- type: str
- """The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or
- \"Microsoft.Storage/storageAccounts\"."""
- systemData: "SystemData"
- """Azure Resource Manager metadata containing createdBy and modifiedBy information."""
-
-
class ProxyResource(Resource):
"""Proxy Resource.
@@ -385,8 +654,8 @@ class BackupPatchProperties(TypedDict, total=False):
"""Label for backup."""
-class TrackedResource(Resource):
- """Tracked Resource.
+class BackupPolicy(TrackedResource):
+ """Backup policy information.
:ivar id: Fully qualified resource ID for the resource. Ex -
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
@@ -403,39 +672,13 @@ class TrackedResource(Resource):
:vartype tags: dict[str, str]
:ivar location: The geo-location where the resource lives. Required.
:vartype location: str
- """
-
- tags: dict[str, str]
- """Resource tags."""
- location: Required[str]
- """The geo-location where the resource lives. Required."""
-
-
-class BackupPolicy(TrackedResource):
- """Backup policy information.
-
- :ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
- :vartype id: str
- :ivar name: The name of the resource.
- :vartype name: str
- :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
- "Microsoft.Storage/storageAccounts".
- :vartype type: str
- :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
- information.
- :vartype system_data: "SystemData"
- :ivar tags: Resource tags.
- :vartype tags: dict[str, str]
- :ivar location: The geo-location where the resource lives. Required.
- :vartype location: str
- :ivar properties: Backup policy Properties. Required.
- :vartype properties: "BackupPolicyProperties"
- :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
- the normal etag convention. Entity tags are used for comparing two or more entities from the
- same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
- (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
- :vartype etag: str
+ :ivar properties: Backup policy Properties. Required.
+ :vartype properties: "BackupPolicyProperties"
+ :ivar etag: "If etag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.").
+ :vartype etag: str
"""
properties: Required["BackupPolicyProperties"]
@@ -666,6 +909,51 @@ class BackupVaultProperties(TypedDict, total=False):
"""Azure lifecycle management."""
+class BindPasswordAkvConfig(TypedDict, total=False):
+ """The Azure Key Vault configuration where the Bind DN (Distinguished Name) user password is
+ stored.
+
+ :ivar azure_key_vault_uri: The Azure Key Vault URI where the Bind DN user password is stored.
+ Required.
+ :vartype azure_key_vault_uri: str
+ :ivar secret_name: The name of the secret in Azure Key Vault that contains the Bind DN user
+ password. Required.
+ :vartype secret_name: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault.
+ :vartype user_assigned_identity: str
+ """
+
+ azureKeyVaultUri: Required[str]
+ """The Azure Key Vault URI where the Bind DN user password is stored. Required."""
+ secretName: Required[str]
+ """The name of the secret in Azure Key Vault that contains the Bind DN user password. Required."""
+ userAssignedIdentity: str
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault."""
+
+
+class BindPasswordAkvConfigPatch(TypedDict, total=False):
+ """The Azure Key Vault configuration where the Bind DN (Distinguished Name) user password is
+ stored.
+
+ :ivar azure_key_vault_uri: The Azure Key Vault URI where the Bind DN user password is stored.
+ :vartype azure_key_vault_uri: str
+ :ivar secret_name: The name of the secret in Azure Key Vault that contains the Bind DN user
+ password.
+ :vartype secret_name: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault.
+ :vartype user_assigned_identity: str
+ """
+
+ azureKeyVaultUri: str
+ """The Azure Key Vault URI where the Bind DN user password is stored."""
+ secretName: str
+ """The name of the secret in Azure Key Vault that contains the Bind DN user password."""
+ userAssignedIdentity: str
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault."""
+
+
class BreakFileLocksRequest(TypedDict, total=False):
"""Break file locks request.
@@ -1339,127 +1627,1323 @@ class CertificateAkvDetails(TypedDict, total=False):
:ivar certificate_name: The name of the bucket server certificate stored in the Azure Key
Vault.
:vartype certificate_name: str
+ :ivar user_assigned_identity: Optional resource ID of the managed identity that has access to
+ the Azure Key Vault (AKV) secret. If a value is provided, it is used to find a matching entry
+ in the account's collection of user-assigned managed identities. If no match is found, an
+ exception is thrown. If no value is provided, the system-assigned managed identity is used.
+ :vartype user_assigned_identity: str
"""
certificateKeyVaultUri: str
"""The base URI of the Azure Key Vault that is used when retrieving the bucket certificate."""
certificateName: str
"""The name of the bucket server certificate stored in the Azure Key Vault."""
+ userAssignedIdentity: str
+ """Optional resource ID of the managed identity that has access to the Azure Key Vault (AKV)
+ secret. If a value is provided, it is used to find a matching entry in the account's collection
+ of user-assigned managed identities. If no match is found, an exception is thrown. If no value
+ is provided, the system-assigned managed identity is used."""
+
+
+class ChangeKeyVault(TypedDict, total=False):
+ """Change key vault request.
+
+ :ivar key_vault_uri: The URI of the key vault/managed HSM that should be used for encryption.
+ Required.
+ :vartype key_vault_uri: str
+ :ivar key_name: The name of the key that should be used for encryption. Required.
+ :vartype key_name: str
+ :ivar key_vault_resource_id: Azure resource ID of the key vault/managed HSM that should be used
+ for encryption.
+ :vartype key_vault_resource_id: str
+ :ivar key_vault_private_endpoints: Pairs of virtual network ID and private endpoint ID. Every
+ virtual network that has volumes encrypted with customer-managed keys needs its own key vault
+ private endpoint. Required.
+ :vartype key_vault_private_endpoints: list["KeyVaultPrivateEndpoint"]
+ """
+
+ keyVaultUri: Required[str]
+ """The URI of the key vault/managed HSM that should be used for encryption. Required."""
+ keyName: Required[str]
+ """The name of the key that should be used for encryption. Required."""
+ keyVaultResourceId: str
+ """Azure resource ID of the key vault/managed HSM that should be used for encryption."""
+ keyVaultPrivateEndpoints: Required[list["KeyVaultPrivateEndpoint"]]
+ """Pairs of virtual network ID and private endpoint ID. Every virtual network that has volumes
+ encrypted with customer-managed keys needs its own key vault private endpoint. Required."""
+
+
+class ChangeZoneRequest(TypedDict, total=False):
+ """Changes the zone for the Zone Redundant elastic capacity pool.
+
+ :ivar new_zone: Availability zone to move Zone Redundant elastic capacity pool to. Required.
+ :vartype new_zone: str
+ """
+
+ newZone: Required[str]
+ """Availability zone to move Zone Redundant elastic capacity pool to. Required."""
+
+
+class CheckElasticVolumeFilePathAvailabilityRequest(TypedDict, total=False): # pylint: disable=name-too-long
+ """File path availability request content - availability is based on the elastic volume filePath
+ within the given elastic capacityPool.
+
+ :ivar file_path: A unique file path for the volume. Used when creating mount targets. This
+ needs to be unique within the elastic capacity pool. Required.
+ :vartype file_path: str
+ """
+
+ filePath: Required[str]
+ """A unique file path for the volume. Used when creating mount targets. This needs to be unique
+ within the elastic capacity pool. Required."""
+
+
+class CifsUser(TypedDict, total=False):
+ """The effective CIFS username when accessing the volume data.
+
+ :ivar username: The CIFS user's username.
+ :vartype username: str
+ """
+
+ username: str
+ """The CIFS user's username."""
+
+
+class CredentialsAkvDetails(TypedDict, total=False):
+ """Specifies the Azure Key Vault settings for storing the bucket credentials.
+
+ :ivar credentials_key_vault_uri: The base URI of the Azure Key Vault that is used when storing
+ the bucket credentials.
+ :vartype credentials_key_vault_uri: str
+ :ivar secret_name: The name of the secret stored in Azure Key Vault. The associated key pair
+ has the following structure:
+
+ {
+ "access_key_id": "",
+ "secret_access_key": ""
+ }.
+ :vartype secret_name: str
+ :ivar user_assigned_identity: Optional resource ID of the managed identity that has access to
+ the Azure Key Vault (AKV) secret. If a value is provided, it is used to find a matching entry
+ in the account's collection of user-assigned managed identities. If no match is found, an
+ exception is thrown. If no value is provided, the system-assigned managed identity is used.
+ :vartype user_assigned_identity: str
+ """
+
+ credentialsKeyVaultUri: str
+ """The base URI of the Azure Key Vault that is used when storing the bucket credentials."""
+ secretName: str
+ """The name of the secret stored in Azure Key Vault. The associated key pair has the following
+ structure:
+
+ {
+ \"access_key_id\": \"\",
+ \"secret_access_key\": \"\"
+ }."""
+ userAssignedIdentity: str
+ """Optional resource ID of the managed identity that has access to the Azure Key Vault (AKV)
+ secret. If a value is provided, it is used to find a matching entry in the account's collection
+ of user-assigned managed identities. If no match is found, an exception is thrown. If no value
+ is provided, the system-assigned managed identity is used."""
+
+
+class DailySchedule(TypedDict, total=False):
+ """Daily Schedule properties.
+
+ :ivar snapshots_to_keep: Daily snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
+ :vartype hour: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ :ivar used_bytes: Resource size in bytes, current storage usage for the volume in bytes.
+ :vartype used_bytes: int
+ """
+
+ snapshotsToKeep: int
+ """Daily snapshot count to keep."""
+ hour: int
+ """Indicates which hour in UTC timezone a snapshot should be taken."""
+ minute: int
+ """Indicates which minute snapshot should be taken."""
+ usedBytes: int
+ """Resource size in bytes, current storage usage for the volume in bytes."""
+
+
+class DestinationReplication(TypedDict, total=False):
+ """Destination replication properties.
+
+ :ivar resource_id: The resource ID of the remote volume.
+ :vartype resource_id: str
+ :ivar replication_type: Indicates whether the replication is cross zone or cross region. Known
+ values are: "CrossRegionReplication" and "CrossZoneReplication".
+ :vartype replication_type: Union[str, "ReplicationType"]
+ :ivar region: The remote region for the destination volume.
+ :vartype region: str
+ :ivar zone: The remote zone for the destination volume.
+ :vartype zone: str
+ """
+
+ resourceId: str
+ """The resource ID of the remote volume."""
+ replicationType: Union[str, "ReplicationType"]
+ """Indicates whether the replication is cross zone or cross region. Known values are:
+ \"CrossRegionReplication\" and \"CrossZoneReplication\"."""
+ region: str
+ """The remote region for the destination volume."""
+ zone: str
+ """The remote zone for the destination volume."""
+
+
+class ElasticAccount(TrackedResource):
+ """NetApp elastic account resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticAccountProperties"
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: "ManagedServiceIdentity"
+ """
+
+ properties: "ElasticAccountProperties"
+ """The resource-specific properties for this resource."""
+ eTag: str
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+ identity: "ManagedServiceIdentity"
+ """The managed service identities assigned to this resource."""
+
+
+class ElasticAccountProperties(TypedDict, total=False):
+ """NetApp elastic account properties.
+
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ :ivar encryption: Encryption settings.
+ :vartype encryption: "ElasticEncryption"
+ """
+
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ encryption: "ElasticEncryption"
+ """Encryption settings."""
+
+
+class ElasticAccountUpdate(TypedDict, total=False):
+ """The type used for update operations of the ElasticAccount.
+
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: "ManagedServiceIdentity"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticAccountUpdateProperties"
+ """
+
+ identity: "ManagedServiceIdentity"
+ """The managed service identities assigned to this resource."""
+ tags: dict[str, str]
+ """Resource tags."""
+ properties: "ElasticAccountUpdateProperties"
+ """The resource-specific properties for this resource."""
+
+
+class ElasticAccountUpdateProperties(TypedDict, total=False):
+ """The updatable properties of the ElasticAccount.
+
+ :ivar encryption: Encryption settings.
+ :vartype encryption: "ElasticEncryption"
+ """
+
+ encryption: "ElasticEncryption"
+ """Encryption settings."""
+
+
+class ElasticBackup(ProxyResource):
+ """NetApp Elastic Backup under an elastic Backup Vault.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticBackupProperties"
+ """
+
+ properties: "ElasticBackupProperties"
+ """The resource-specific properties for this resource."""
+
+
+class ElasticBackupPolicy(TrackedResource):
+ """NetApp Elastic Backup Policy resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticBackupPolicyProperties"
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ """
+
+ properties: "ElasticBackupPolicyProperties"
+ """The resource-specific properties for this resource."""
+ eTag: str
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+
+
+class ElasticBackupPolicyProperties(TypedDict, total=False):
+ """Elastic Backup Policy properties.
+
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ :ivar daily_backups_to_keep: Daily backups count to keep.
+ :vartype daily_backups_to_keep: int
+ :ivar weekly_backups_to_keep: Weekly backups count to keep.
+ :vartype weekly_backups_to_keep: int
+ :ivar monthly_backups_to_keep: Monthly backups count to keep.
+ :vartype monthly_backups_to_keep: int
+ :ivar assigned_volumes_count: The number of volumes currently using this Backup Policy.
+ :vartype assigned_volumes_count: int
+ :ivar policy_state: The property to identify whether Backup Policy is enabled or not. Known
+ values are: "Enabled" and "Disabled".
+ :vartype policy_state: Union[str, "ElasticBackupPolicyState"]
+ """
+
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ dailyBackupsToKeep: int
+ """Daily backups count to keep."""
+ weeklyBackupsToKeep: int
+ """Weekly backups count to keep."""
+ monthlyBackupsToKeep: int
+ """Monthly backups count to keep."""
+ assignedVolumesCount: int
+ """The number of volumes currently using this Backup Policy."""
+ policyState: Union[str, "ElasticBackupPolicyState"]
+ """The property to identify whether Backup Policy is enabled or not. Known values are: \"Enabled\"
+ and \"Disabled\"."""
+
+
+class ElasticBackupPolicyUpdate(TypedDict, total=False):
+ """The type used for update operations of the ElasticBackupPolicy.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticBackupPolicyUpdateProperties"
+ """
+
+ tags: dict[str, str]
+ """Resource tags."""
+ properties: "ElasticBackupPolicyUpdateProperties"
+ """The resource-specific properties for this resource."""
+
+
+class ElasticBackupPolicyUpdateProperties(TypedDict, total=False):
+ """The updatable properties of the ElasticBackupPolicy.
+
+ :ivar daily_backups_to_keep: Daily backups count to keep.
+ :vartype daily_backups_to_keep: int
+ :ivar weekly_backups_to_keep: Weekly backups count to keep.
+ :vartype weekly_backups_to_keep: int
+ :ivar monthly_backups_to_keep: Monthly backups count to keep.
+ :vartype monthly_backups_to_keep: int
+ :ivar policy_state: The property to identify whether Backup Policy is enabled or not. Known
+ values are: "Enabled" and "Disabled".
+ :vartype policy_state: Union[str, "ElasticBackupPolicyState"]
+ """
+
+ dailyBackupsToKeep: int
+ """Daily backups count to keep."""
+ weeklyBackupsToKeep: int
+ """Weekly backups count to keep."""
+ monthlyBackupsToKeep: int
+ """Monthly backups count to keep."""
+ policyState: Union[str, "ElasticBackupPolicyState"]
+ """The property to identify whether Backup Policy is enabled or not. Known values are: \"Enabled\"
+ and \"Disabled\"."""
+
+
+class ElasticBackupProperties(TypedDict, total=False):
+ """Elastic Backup properties.
+
+ :ivar creation_date: The creation date of the backup.
+ :vartype creation_date: str
+ :ivar snapshot_creation_date: The snapshot creation date of the backup.
+ :vartype snapshot_creation_date: str
+ :ivar completion_date: The completion date of the backup.
+ :vartype completion_date: str
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ :ivar size: Size of backup in bytes.
+ :vartype size: int
+ :ivar label: Label for backup.
+ :vartype label: str
+ :ivar backup_type: Type of backup Manual or Scheduled. Known values are: "Manual" and
+ "Scheduled".
+ :vartype backup_type: Union[str, "ElasticBackupType"]
+ :ivar failure_reason: Failure reason.
+ :vartype failure_reason: str
+ :ivar elastic_volume_resource_id: ResourceId used to identify the Elastic Volume. Required.
+ :vartype elastic_volume_resource_id: str
+ :ivar snapshot_usage: Manual backup using an already existing snapshot. This will always be
+ CreateNewSnapshot for scheduled backups and UseExistingSnapshot/CreateNewSnapshot for manual
+ backups. Known values are: "UseExistingSnapshot" and "CreateNewSnapshot".
+ :vartype snapshot_usage: Union[str, "SnapshotUsage"]
+ :ivar elastic_snapshot_resource_id: ResourceId used to identify the elastic snapshot resource.
+ This is required when an existing snapshot needs to be used for creating a manual backup.
+ :vartype elastic_snapshot_resource_id: str
+ :ivar elastic_backup_policy_resource_id: ResourceId used to identify the elastic backup policy.
+ :vartype elastic_backup_policy_resource_id: str
+ :ivar volume_size: Specifies if the backup is for a large volume. Known values are: "Large" and
+ "Regular".
+ :vartype volume_size: Union[str, "VolumeSize"]
+ """
+
+ creationDate: str
+ """The creation date of the backup."""
+ snapshotCreationDate: str
+ """The snapshot creation date of the backup."""
+ completionDate: str
+ """The completion date of the backup."""
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ size: int
+ """Size of backup in bytes."""
+ label: str
+ """Label for backup."""
+ backupType: Union[str, "ElasticBackupType"]
+ """Type of backup Manual or Scheduled. Known values are: \"Manual\" and \"Scheduled\"."""
+ failureReason: str
+ """Failure reason."""
+ elasticVolumeResourceId: Required[str]
+ """ResourceId used to identify the Elastic Volume. Required."""
+ snapshotUsage: Union[str, "SnapshotUsage"]
+ """Manual backup using an already existing snapshot. This will always be CreateNewSnapshot for
+ scheduled backups and UseExistingSnapshot/CreateNewSnapshot for manual backups. Known values
+ are: \"UseExistingSnapshot\" and \"CreateNewSnapshot\"."""
+ elasticSnapshotResourceId: str
+ """ResourceId used to identify the elastic snapshot resource. This is required when an existing
+ snapshot needs to be used for creating a manual backup."""
+ elasticBackupPolicyResourceId: str
+ """ResourceId used to identify the elastic backup policy."""
+ volumeSize: Union[str, "VolumeSize"]
+ """Specifies if the backup is for a large volume. Known values are: \"Large\" and \"Regular\"."""
+
+
+class ElasticBackupVault(TrackedResource):
+ """NetApp elastic backup vault resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticBackupVaultProperties"
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ """
+
+ properties: "ElasticBackupVaultProperties"
+ """The resource-specific properties for this resource."""
+ eTag: str
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+
+
+class ElasticBackupVaultProperties(TypedDict, total=False):
+ """Elastic Backup Vault properties.
+
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ """
+
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+
+
+class ElasticBackupVaultUpdate(TypedDict, total=False):
+ """The type used for update operations of the ElasticBackupVault.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ """
+
+ tags: dict[str, str]
+ """Resource tags."""
+
+
+class ElasticCapacityPool(TrackedResource):
+ """NetApp Elastic Capacity Pool resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticCapacityPoolProperties"
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ :ivar zones: The availability zones.
+ :vartype zones: list[str]
+ """
+
+ properties: "ElasticCapacityPoolProperties"
+ """The resource-specific properties for this resource."""
+ eTag: str
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+ zones: list[str]
+ """The availability zones."""
+
+
+class ElasticCapacityPoolProperties(TypedDict, total=False):
+ """Elastic capacity pool properties.
+
+ :ivar size: Provisioned size of the pool (in bytes). For zoneRedundant service level pool,
+ value must be in the range 1TiB to 16TiB or 1TiB to 128TiB for supported region. Values
+ expressed in bytes as multiples of 1TiB till 16TiB and in multiples of 8TiB from 24TiB to
+ 128TiB. Pool size can't be shrunk once it is created. Required.
+ :vartype size: int
+ :ivar service_level: The service level of the elastic capacity pool. Required. "ZoneRedundant"
+ :vartype service_level: Union[str, "ElasticServiceLevel"]
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ :ivar encryption: Encryption settings.
+ :vartype encryption: "ElasticEncryptionConfiguration"
+ :ivar total_throughput_mibps: Total throughput of the pool in MiB/s.
+ :vartype total_throughput_mibps: float
+ :ivar subnet_resource_id: The Azure Resource URI for a delegated subnet. Must have the
+ delegation Microsoft.NetApp/elasticVolumes, this is used by all the volumes within the pool.
+ Required.
+ :vartype subnet_resource_id: str
+ :ivar current_zone: Indicates the current zone of the pool. This can be changed for
+ zoneRedundant service level pool with the changeZone action.
+ :vartype current_zone: str
+ :ivar availability_status: Current availability status of the resource. Known values are:
+ "Online" and "Offline".
+ :vartype availability_status: Union[str, "ElasticResourceAvailabilityStatus"]
+ :ivar active_directory_config_resource_id: The Azure Resource URI for an Active Directory
+ configuration. This is used by all the SMB volumes within the pool.
+ :vartype active_directory_config_resource_id: str
+ """
+
+ size: Required[int]
+ """Provisioned size of the pool (in bytes). For zoneRedundant service level pool, value must be in
+ the range 1TiB to 16TiB or 1TiB to 128TiB for supported region. Values expressed in bytes as
+ multiples of 1TiB till 16TiB and in multiples of 8TiB from 24TiB to 128TiB. Pool size can't be
+ shrunk once it is created. Required."""
+ serviceLevel: Required[Union[str, "ElasticServiceLevel"]]
+ """The service level of the elastic capacity pool. Required. \"ZoneRedundant\""""
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ encryption: "ElasticEncryptionConfiguration"
+ """Encryption settings."""
+ totalThroughputMibps: float
+ """Total throughput of the pool in MiB/s."""
+ subnetResourceId: Required[str]
+ """The Azure Resource URI for a delegated subnet. Must have the delegation
+ Microsoft.NetApp/elasticVolumes, this is used by all the volumes within the pool. Required."""
+ currentZone: str
+ """Indicates the current zone of the pool. This can be changed for zoneRedundant service level
+ pool with the changeZone action."""
+ availabilityStatus: Union[str, "ElasticResourceAvailabilityStatus"]
+ """Current availability status of the resource. Known values are: \"Online\" and \"Offline\"."""
+ activeDirectoryConfigResourceId: str
+ """The Azure Resource URI for an Active Directory configuration. This is used by all the SMB
+ volumes within the pool."""
+
+
+class ElasticCapacityPoolUpdate(TypedDict, total=False):
+ """The type used for update operations of the ElasticCapacityPool.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticCapacityPoolUpdateProperties"
+ """
+
+ tags: dict[str, str]
+ """Resource tags."""
+ properties: "ElasticCapacityPoolUpdateProperties"
+ """The resource-specific properties for this resource."""
+
+
+class ElasticCapacityPoolUpdateProperties(TypedDict, total=False):
+ """The updatable properties of the ElasticCapacityPool.
+
+ :ivar size: Provisioned size of the pool (in bytes). For zoneRedundant service level pool,
+ value must be in the range 1TiB to 16TiB or 1TiB to 128TiB for supported region. Values
+ expressed in bytes as multiples of 1TiB till 16TiB and in multiples of 8TiB from 24TiB to
+ 128TiB. Pool size can't be shrunk once it is created.
+ :vartype size: int
+ :ivar encryption: Encryption settings.
+ :vartype encryption: "ElasticEncryptionConfiguration"
+ :ivar active_directory_config_resource_id: The Azure Resource URI for an Active Directory
+ configuration. This is used by all the SMB volumes within the pool.
+ :vartype active_directory_config_resource_id: str
+ """
+
+ size: int
+ """Provisioned size of the pool (in bytes). For zoneRedundant service level pool, value must be in
+ the range 1TiB to 16TiB or 1TiB to 128TiB for supported region. Values expressed in bytes as
+ multiples of 1TiB till 16TiB and in multiples of 8TiB from 24TiB to 128TiB. Pool size can't be
+ shrunk once it is created."""
+ encryption: "ElasticEncryptionConfiguration"
+ """Encryption settings."""
+ activeDirectoryConfigResourceId: str
+ """The Azure Resource URI for an Active Directory configuration. This is used by all the SMB
+ volumes within the pool."""
+
+
+class ElasticEncryption(TypedDict, total=False):
+ """Encryption settings.
+
+ :ivar key_source: The encryption keySource (provider). Possible values (case-insensitive):
+ Microsoft.NetApp, Microsoft.KeyVault. Known values are: "Microsoft.NetApp" and
+ "Microsoft.KeyVault".
+ :vartype key_source: Union[str, "KeySource"]
+ :ivar key_vault_properties: Properties provided by KeyVault. Applicable if keySource is
+ 'Microsoft.KeyVault'.
+ :vartype key_vault_properties: "ElasticKeyVaultProperties"
+ :ivar identity: Identity used to authenticate to KeyVault. Applicable if keySource is
+ 'Microsoft.KeyVault'.
+ :vartype identity: "ElasticEncryptionIdentity"
+ """
+
+ keySource: Union[str, "KeySource"]
+ """The encryption keySource (provider). Possible values (case-insensitive): Microsoft.NetApp,
+ Microsoft.KeyVault. Known values are: \"Microsoft.NetApp\" and \"Microsoft.KeyVault\"."""
+ keyVaultProperties: "ElasticKeyVaultProperties"
+ """Properties provided by KeyVault. Applicable if keySource is 'Microsoft.KeyVault'."""
+ identity: "ElasticEncryptionIdentity"
+ """Identity used to authenticate to KeyVault. Applicable if keySource is 'Microsoft.KeyVault'."""
+
+
+class ElasticEncryptionConfiguration(TypedDict, total=False):
+ """CMK Encryption Configuration.
+
+ :ivar elastic_pool_encryption_key_source: Pool Encryption Key Source. Required. Known values
+ are: "NetApp" and "KeyVault".
+ :vartype elastic_pool_encryption_key_source: Union[str, "ElasticPoolEncryptionKeySource"]
+ :ivar key_vault_private_endpoint_resource_id: The resource ID of private endpoint for KeyVault.
+ It must reside in the same VNET as the volume. Only applicable if encryptionKeySource =
+ 'Microsoft.KeyVault'. Required.
+ :vartype key_vault_private_endpoint_resource_id: str
+ """
+
+ elasticPoolEncryptionKeySource: Required[Union[str, "ElasticPoolEncryptionKeySource"]]
+ """Pool Encryption Key Source. Required. Known values are: \"NetApp\" and \"KeyVault\"."""
+ keyVaultPrivateEndpointResourceId: Required[str]
+ """The resource ID of private endpoint for KeyVault. It must reside in the same VNET as the
+ volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'. Required."""
+
+
+class ElasticEncryptionIdentity(TypedDict, total=False):
+ """Identity used to authenticate with key vault.
+
+ :ivar principal_id: The principal ID (object ID) of the identity used to authenticate with key
+ vault. Read-only.
+ :vartype principal_id: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault. Applicable if identity.type has 'UserAssigned'. It should match
+ key of identity.userAssignedIdentities.
+ :vartype user_assigned_identity: str
+ :ivar federated_client_id: ClientId of the multi-tenant Entra ID Application. Used to access
+ cross-tenant keyvaults.
+ :vartype federated_client_id: str
+ """
+
+ principalId: str
+ """The principal ID (object ID) of the identity used to authenticate with key vault. Read-only."""
+ userAssignedIdentity: str
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault.
+ Applicable if identity.type has 'UserAssigned'. It should match key of
+ identity.userAssignedIdentities."""
+ federatedClientId: str
+ """ClientId of the multi-tenant Entra ID Application. Used to access cross-tenant keyvaults."""
+
+
+class ElasticExportPolicy(TypedDict, total=False):
+ """Set of export policy rules.
+
+ :ivar rules: Export policy rule.
+ :vartype rules: list["ElasticExportPolicyRule"]
+ """
+
+ rules: list["ElasticExportPolicyRule"]
+ """Export policy rule."""
+
+
+class ElasticExportPolicyRule(TypedDict, total=False):
+ """Elastic Volume Export Policy Rule.
+
+ :ivar rule_index: Controls the priority of the export policy rule. When connecting to the
+ volume the rule with the lowest index that applies to the connecting client is used.
+ :vartype rule_index: int
+ :ivar unix_access_rule: Specifies the Unix file access level for the volume. It encompasses
+ both read-only and read-write permissions. Additionally, NoAccess can be set to block all
+ access to the volume. Known values are: "ReadOnly", "ReadWrite", and "NoAccess".
+ :vartype unix_access_rule: Union[str, "ElasticUnixAccessRule"]
+ :ivar nfsv3: Allows clients to access the volume with the NFSv3 protocol. Enable only for NFSv3
+ type volumes. Known values are: "Enabled" and "Disabled".
+ :vartype nfsv3: Union[str, "ElasticNfsv3Access"]
+ :ivar nfsv4: Allows clients to access the volume with at least NFSv4.1 protocol. Known values
+ are: "Enabled" and "Disabled".
+ :vartype nfsv4: Union[str, "ElasticNfsv4Access"]
+ :ivar allowed_clients: Client ingress specification for the export policy as list of IPv4
+ CIDRs, IPv4 host addresses and host names.
+ :vartype allowed_clients: list[str]
+ :ivar root_access: Indicates whether root access to the volume is granted to clients affected
+ by this rule. Known values are: "Enabled" and "Disabled".
+ :vartype root_access: Union[str, "ElasticRootAccess"]
+ """
+
+ ruleIndex: int
+ """Controls the priority of the export policy rule. When connecting to the volume the rule with
+ the lowest index that applies to the connecting client is used."""
+ unixAccessRule: Union[str, "ElasticUnixAccessRule"]
+ """Specifies the Unix file access level for the volume. It encompasses both read-only and
+ read-write permissions. Additionally, NoAccess can be set to block all access to the volume.
+ Known values are: \"ReadOnly\", \"ReadWrite\", and \"NoAccess\"."""
+ nfsv3: Union[str, "ElasticNfsv3Access"]
+ """Allows clients to access the volume with the NFSv3 protocol. Enable only for NFSv3 type
+ volumes. Known values are: \"Enabled\" and \"Disabled\"."""
+ nfsv4: Union[str, "ElasticNfsv4Access"]
+ """Allows clients to access the volume with at least NFSv4.1 protocol. Known values are:
+ \"Enabled\" and \"Disabled\"."""
+ allowedClients: list[str]
+ """Client ingress specification for the export policy as list of IPv4 CIDRs, IPv4 host addresses
+ and host names."""
+ rootAccess: Union[str, "ElasticRootAccess"]
+ """Indicates whether root access to the volume is granted to clients affected by this rule. Known
+ values are: \"Enabled\" and \"Disabled\"."""
+
+
+class ElasticKeyVaultProperties(TypedDict, total=False):
+ """Properties of key vault.
+
+ :ivar key_vault_uri: The Uri of KeyVault.
+ :vartype key_vault_uri: str
+ :ivar key_name: The name of KeyVault key.
+ :vartype key_name: str
+ :ivar key_vault_resource_id: The resource ID of KeyVault.
+ :vartype key_vault_resource_id: str
+ :ivar status: Status of the KeyVault connection. Known values are: "Created", "InUse",
+ "Deleted", "Error", and "Updating".
+ :vartype status: Union[str, "ElasticKeyVaultStatus"]
+ """
+
+ keyVaultUri: str
+ """The Uri of KeyVault."""
+ keyName: str
+ """The name of KeyVault key."""
+ keyVaultResourceId: str
+ """The resource ID of KeyVault."""
+ status: Union[str, "ElasticKeyVaultStatus"]
+ """Status of the KeyVault connection. Known values are: \"Created\", \"InUse\", \"Deleted\",
+ \"Error\", and \"Updating\"."""
+
+
+class ElasticMountTargetProperties(TypedDict, total=False):
+ """Contains all the information needed to mount an elastic volume.
+
+ :ivar ip_address: The mount target's IPv4 address, used to mount the volume.
+ :vartype ip_address: str
+ :ivar smb_server_fqdn: The SMB server's Fully Qualified Domain Name, FQDN.
+ :vartype smb_server_fqdn: str
+ """
+
+ ipAddress: str
+ """The mount target's IPv4 address, used to mount the volume."""
+ smbServerFqdn: str
+ """The SMB server's Fully Qualified Domain Name, FQDN."""
+
+
+class ElasticSmbPatchProperties(TypedDict, total=False):
+ """SMB Patch Properties.
+
+ :ivar smb_encryption: Used to enable or disable encryption for in-flight SMB data volume. This
+ flag can be modified during Elastic volume update operation as well. Only applicable for SMB
+ protocol Elastic volumes. Known values are: "Enabled" and "Disabled".
+ :vartype smb_encryption: Union[str, "ElasticSmbEncryption"]
+ """
+
+ smbEncryption: Union[str, "ElasticSmbEncryption"]
+ """Used to enable or disable encryption for in-flight SMB data volume. This flag can be modified
+ during Elastic volume update operation as well. Only applicable for SMB protocol Elastic
+ volumes. Known values are: \"Enabled\" and \"Disabled\"."""
+
+
+class ElasticSmbProperties(TypedDict, total=False):
+ """SMB Properties.
+
+ :ivar smb_encryption: Used to enable or disable encryption for in-flight SMB data volume. This
+ flag can be modified during Elastic volume update operation as well. Only applicable for SMB
+ protocol Elastic volumes. Known values are: "Enabled" and "Disabled".
+ :vartype smb_encryption: Union[str, "ElasticSmbEncryption"]
+ """
+
+ smbEncryption: Union[str, "ElasticSmbEncryption"]
+ """Used to enable or disable encryption for in-flight SMB data volume. This flag can be modified
+ during Elastic volume update operation as well. Only applicable for SMB protocol Elastic
+ volumes. Known values are: \"Enabled\" and \"Disabled\"."""
+
+
+class ElasticSnapshot(ProxyResource):
+ """NetApp Elastic Snapshot under an Elastic Volume.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticSnapshotProperties"
+ """
+
+ properties: "ElasticSnapshotProperties"
+ """The resource-specific properties for this resource."""
+
+
+class ElasticSnapshotPolicy(TrackedResource):
+ """NetApp Elastic Snapshot Policy under an Elastic Account.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticSnapshotPolicyProperties"
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ """
+
+ properties: "ElasticSnapshotPolicyProperties"
+ """The resource-specific properties for this resource."""
+ eTag: str
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+
+
+class ElasticSnapshotPolicyDailySchedule(TypedDict, total=False):
+ """Daily Schedule properties used to create NetApp snapshot policy.
+
+ :ivar snapshots_to_keep: Daily snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
+ :vartype hour: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ """
+
+ snapshotsToKeep: int
+ """Daily snapshot count to keep."""
+ hour: int
+ """Indicates which hour in UTC timezone a snapshot should be taken."""
+ minute: int
+ """Indicates which minute snapshot should be taken."""
+
+
+class ElasticSnapshotPolicyHourlySchedule(TypedDict, total=False):
+ """Hourly Schedule properties used to create NetApp snapshot policy.
+
+ :ivar snapshots_to_keep: Hourly snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ """
+
+ snapshotsToKeep: int
+ """Hourly snapshot count to keep."""
+ minute: int
+ """Indicates which minute snapshot should be taken."""
+
+
+class ElasticSnapshotPolicyMonthlySchedule(TypedDict, total=False):
+ """Monthly Schedule properties used to create NetApp snapshot policy.
+
+ :ivar snapshots_to_keep: Monthly snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar days_of_month: Indicates which days of the month snapshot (1-31) should be taken, accepts
+ a list of integers.
+ :vartype days_of_month: list[int]
+ :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
+ :vartype hour: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ """
+
+ snapshotsToKeep: int
+ """Monthly snapshot count to keep."""
+ daysOfMonth: list[int]
+ """Indicates which days of the month snapshot (1-31) should be taken, accepts a list of integers."""
+ hour: int
+ """Indicates which hour in UTC timezone a snapshot should be taken."""
+ minute: int
+ """Indicates which minute snapshot should be taken."""
+
+
+class ElasticSnapshotPolicyProperties(TypedDict, total=False):
+ """Elastic Snapshot policy properties.
+
+ :ivar hourly_schedule: Schedule for hourly snapshots.
+ :vartype hourly_schedule: "ElasticSnapshotPolicyHourlySchedule"
+ :ivar daily_schedule: Schedule for daily snapshots.
+ :vartype daily_schedule: "ElasticSnapshotPolicyDailySchedule"
+ :ivar weekly_schedule: Schedule for weekly snapshots.
+ :vartype weekly_schedule: "ElasticSnapshotPolicyWeeklySchedule"
+ :ivar monthly_schedule: Schedule for monthly snapshots.
+ :vartype monthly_schedule: "ElasticSnapshotPolicyMonthlySchedule"
+ :ivar policy_status: Configures if the snapshot policy is enabled on the volumes connected to
+ the policy. Known values are: "Enabled" and "Disabled".
+ :vartype policy_status: Union[str, "PolicyStatus"]
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ """
+
+ hourlySchedule: "ElasticSnapshotPolicyHourlySchedule"
+ """Schedule for hourly snapshots."""
+ dailySchedule: "ElasticSnapshotPolicyDailySchedule"
+ """Schedule for daily snapshots."""
+ weeklySchedule: "ElasticSnapshotPolicyWeeklySchedule"
+ """Schedule for weekly snapshots."""
+ monthlySchedule: "ElasticSnapshotPolicyMonthlySchedule"
+ """Schedule for monthly snapshots."""
+ policyStatus: Union[str, "PolicyStatus"]
+ """Configures if the snapshot policy is enabled on the volumes connected to the policy. Known
+ values are: \"Enabled\" and \"Disabled\"."""
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+
+
+class ElasticSnapshotPolicyUpdate(TypedDict, total=False):
+ """The type used for update operations of the ElasticSnapshotPolicy.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticSnapshotPolicyUpdateProperties"
+ """
+
+ tags: dict[str, str]
+ """Resource tags."""
+ properties: "ElasticSnapshotPolicyUpdateProperties"
+ """The resource-specific properties for this resource."""
+
+
+class ElasticSnapshotPolicyUpdateProperties(TypedDict, total=False):
+ """The updatable properties of the ElasticSnapshotPolicy.
+
+ :ivar hourly_schedule: Schedule for hourly snapshots.
+ :vartype hourly_schedule: "ElasticSnapshotPolicyHourlySchedule"
+ :ivar daily_schedule: Schedule for daily snapshots.
+ :vartype daily_schedule: "ElasticSnapshotPolicyDailySchedule"
+ :ivar weekly_schedule: Schedule for weekly snapshots.
+ :vartype weekly_schedule: "ElasticSnapshotPolicyWeeklySchedule"
+ :ivar monthly_schedule: Schedule for monthly snapshots.
+ :vartype monthly_schedule: "ElasticSnapshotPolicyMonthlySchedule"
+ :ivar policy_status: Configures if the snapshot policy is enabled on the volumes connected to
+ the policy. Known values are: "Enabled" and "Disabled".
+ :vartype policy_status: Union[str, "PolicyStatus"]
+ """
+
+ hourlySchedule: "ElasticSnapshotPolicyHourlySchedule"
+ """Schedule for hourly snapshots."""
+ dailySchedule: "ElasticSnapshotPolicyDailySchedule"
+ """Schedule for daily snapshots."""
+ weeklySchedule: "ElasticSnapshotPolicyWeeklySchedule"
+ """Schedule for weekly snapshots."""
+ monthlySchedule: "ElasticSnapshotPolicyMonthlySchedule"
+ """Schedule for monthly snapshots."""
+ policyStatus: Union[str, "PolicyStatus"]
+ """Configures if the snapshot policy is enabled on the volumes connected to the policy. Known
+ values are: \"Enabled\" and \"Disabled\"."""
+
+
+class ElasticSnapshotPolicyWeeklySchedule(TypedDict, total=False):
+ """Weekly Schedule properties used to create NetApp snapshot policy.
+
+ :ivar snapshots_to_keep: Weekly snapshot count to keep.
+ :vartype snapshots_to_keep: int
+ :ivar days: Indicates which weekday(s) snapshot(s) should be taken, accepts a list of week day
+ names in english.
+ :vartype days: list[Union[str, "DayOfWeek"]]
+ :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
+ :vartype hour: int
+ :ivar minute: Indicates which minute snapshot should be taken.
+ :vartype minute: int
+ """
+
+ snapshotsToKeep: int
+ """Weekly snapshot count to keep."""
+ days: list[Union[str, "DayOfWeek"]]
+ """Indicates which weekday(s) snapshot(s) should be taken, accepts a list of week day names in
+ english."""
+ hour: int
+ """Indicates which hour in UTC timezone a snapshot should be taken."""
+ minute: int
+ """Indicates which minute snapshot should be taken."""
+
+
+class ElasticSnapshotProperties(TypedDict, total=False):
+ """Elastic Snapshot properties.
+
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ """
+
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+
+
+class ElasticVolume(TrackedResource):
+ """NetApp Elastic Volume resource.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: "SystemData"
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticVolumeProperties"
+ :ivar e_tag: If eTag is provided in the response body, it may also be provided as a header per
+ the normal etag convention. Entity tags are used for comparing two or more entities from the
+ same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match
+ (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.
+ :vartype e_tag: str
+ :ivar zones: The availability zones.
+ :vartype zones: list[str]
+ """
+
+ properties: "ElasticVolumeProperties"
+ """The resource-specific properties for this resource."""
+ eTag: str
+ """If eTag is provided in the response body, it may also be provided as a header per the normal
+ etag convention. Entity tags are used for comparing two or more entities from the same
+ requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section
+ 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields."""
+ zones: list[str]
+ """The availability zones."""
+
+
+class ElasticVolumeBackupProperties(TypedDict, total=False):
+ """Elastic Volume Backup Properties.
+
+ :ivar elastic_backup_policy_resource_id: ResourceId used to identify Elastic Backup Policy.
+ :vartype elastic_backup_policy_resource_id: str
+ :ivar policy_enforcement: The property to decide policy is enforced or not on the volume. Known
+ values are: "Enforced" and "NotEnforced".
+ :vartype policy_enforcement: Union[str, "ElasticVolumePolicyEnforcement"]
+ :ivar elastic_backup_vault_resource_id: ResourceId used to identify Elastic Backup Vault.
+ :vartype elastic_backup_vault_resource_id: str
+ """
+
+ elasticBackupPolicyResourceId: str
+ """ResourceId used to identify Elastic Backup Policy."""
+ policyEnforcement: Union[str, "ElasticVolumePolicyEnforcement"]
+ """The property to decide policy is enforced or not on the volume. Known values are: \"Enforced\"
+ and \"NotEnforced\"."""
+ elasticBackupVaultResourceId: str
+ """ResourceId used to identify Elastic Backup Vault."""
+
+
+class ElasticVolumeDataProtectionPatchProperties(TypedDict, total=False): # pylint: disable=name-too-long
+ """Data protection configuration option for updating the volume, including snapshot policies and
+ backup.
+ :ivar snapshot: Used to apply a snapshot policy to a volume.
+ :vartype snapshot: "ElasticVolumeSnapshotProperties"
+ :ivar backup: Used to configure backups on an elastic volume.
+ :vartype backup: "ElasticVolumeBackupProperties"
+ """
-class ChangeKeyVault(TypedDict, total=False):
- """Change key vault request.
+ snapshot: "ElasticVolumeSnapshotProperties"
+ """Used to apply a snapshot policy to a volume."""
+ backup: "ElasticVolumeBackupProperties"
+ """Used to configure backups on an elastic volume."""
- :ivar key_vault_uri: The URI of the key vault/managed HSM that should be used for encryption.
- Required.
- :vartype key_vault_uri: str
- :ivar key_name: The name of the key that should be used for encryption. Required.
- :vartype key_name: str
- :ivar key_vault_resource_id: Azure resource ID of the key vault/managed HSM that should be used
- for encryption.
- :vartype key_vault_resource_id: str
- :ivar key_vault_private_endpoints: Pairs of virtual network ID and private endpoint ID. Every
- virtual network that has volumes encrypted with customer-managed keys needs its own key vault
- private endpoint. Required.
- :vartype key_vault_private_endpoints: list["KeyVaultPrivateEndpoint"]
+
+class ElasticVolumeDataProtectionProperties(TypedDict, total=False):
+ """Data protection configuration option for the volume, including snapshot policies and backup.
+
+ :ivar snapshot: Used to apply a snapshot policy to a volume.
+ :vartype snapshot: "ElasticVolumeSnapshotProperties"
+ :ivar backup: Used to configure backups on an elastic volume.
+ :vartype backup: "ElasticVolumeBackupProperties"
"""
- keyVaultUri: Required[str]
- """The URI of the key vault/managed HSM that should be used for encryption. Required."""
- keyName: Required[str]
- """The name of the key that should be used for encryption. Required."""
- keyVaultResourceId: str
- """Azure resource ID of the key vault/managed HSM that should be used for encryption."""
- keyVaultPrivateEndpoints: Required[list["KeyVaultPrivateEndpoint"]]
- """Pairs of virtual network ID and private endpoint ID. Every virtual network that has volumes
- encrypted with customer-managed keys needs its own key vault private endpoint. Required."""
+ snapshot: "ElasticVolumeSnapshotProperties"
+ """Used to apply a snapshot policy to a volume."""
+ backup: "ElasticVolumeBackupProperties"
+ """Used to configure backups on an elastic volume."""
-class CifsUser(TypedDict, total=False):
- """The effective CIFS username when accessing the volume data.
+class ElasticVolumeProperties(TypedDict, total=False):
+ """Elastic Volume properties.
- :ivar username: The CIFS user's username.
- :vartype username: str
+ :ivar file_path: A unique file path for the volume. Used when creating mount targets. This
+ needs to be unique within the elastic capacity pool. Required.
+ :vartype file_path: str
+ :ivar size: Maximum size allowed for a volume in bytes. Valid values are in the range 1GiB to
+ 16TiB. Values expressed in bytes as multiples of 1 GiB. Required.
+ :vartype size: int
+ :ivar export_policy: Set of export policy rules.
+ :vartype export_policy: "ElasticExportPolicy"
+ :ivar protocol_types: Set of support protocol types for the elastic volume. Required.
+ :vartype protocol_types: list[Union[str, "ElasticProtocolType"]]
+ :ivar provisioning_state: Azure lifecycle management. Known values are: "Accepted", "Creating",
+ "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded".
+ :vartype provisioning_state: Union[str, "NetAppProvisioningState"]
+ :ivar availability_status: Current availability status of the resource. Known values are:
+ "Online" and "Offline".
+ :vartype availability_status: Union[str, "ElasticResourceAvailabilityStatus"]
+ :ivar snapshot_resource_id: Resource identifier used to identify the Elastic Snapshot.
+ :vartype snapshot_resource_id: str
+ :ivar mount_targets: List of mount targets that can be used to mount this volume.
+ :vartype mount_targets: list["ElasticMountTargetProperties"]
+ :ivar data_protection: Data protection configuration option for the volume, including snapshot
+ policies and backup.
+ :vartype data_protection: "ElasticVolumeDataProtectionProperties"
+ :ivar snapshot_directory_visibility: Controls the visibility of the volume's read-only snapshot
+ directory, which provides access to each of the volume's snapshots. Known values are: "Hidden"
+ and "Visible".
+ :vartype snapshot_directory_visibility: Union[str, "SnapshotDirectoryVisibility"]
+ :ivar smb_properties: SMB Properties.
+ :vartype smb_properties: "ElasticSmbProperties"
+ :ivar backup_resource_id: Resource identifier used to identify the Elastic Backup.
+ :vartype backup_resource_id: str
+ :ivar restoration_state: The current state of the restoration process. Known values are:
+ "Restoring", "Restored", and "Failed".
+ :vartype restoration_state: Union[str, "ElasticVolumeRestorationState"]
"""
- username: str
- """The CIFS user's username."""
+ filePath: Required[str]
+ """A unique file path for the volume. Used when creating mount targets. This needs to be unique
+ within the elastic capacity pool. Required."""
+ size: Required[int]
+ """Maximum size allowed for a volume in bytes. Valid values are in the range 1GiB to 16TiB. Values
+ expressed in bytes as multiples of 1 GiB. Required."""
+ exportPolicy: "ElasticExportPolicy"
+ """Set of export policy rules."""
+ protocolTypes: Required[list[Union[str, "ElasticProtocolType"]]]
+ """Set of support protocol types for the elastic volume. Required."""
+ provisioningState: Union[str, "NetAppProvisioningState"]
+ """Azure lifecycle management. Known values are: \"Accepted\", \"Creating\", \"Patching\",
+ \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\"."""
+ availabilityStatus: Union[str, "ElasticResourceAvailabilityStatus"]
+ """Current availability status of the resource. Known values are: \"Online\" and \"Offline\"."""
+ snapshotResourceId: str
+ """Resource identifier used to identify the Elastic Snapshot."""
+ mountTargets: list["ElasticMountTargetProperties"]
+ """List of mount targets that can be used to mount this volume."""
+ dataProtection: "ElasticVolumeDataProtectionProperties"
+ """Data protection configuration option for the volume, including snapshot policies and backup."""
+ snapshotDirectoryVisibility: Union[str, "SnapshotDirectoryVisibility"]
+ """Controls the visibility of the volume's read-only snapshot directory, which provides access to
+ each of the volume's snapshots. Known values are: \"Hidden\" and \"Visible\"."""
+ smbProperties: "ElasticSmbProperties"
+ """SMB Properties."""
+ backupResourceId: str
+ """Resource identifier used to identify the Elastic Backup."""
+ restorationState: Union[str, "ElasticVolumeRestorationState"]
+ """The current state of the restoration process. Known values are: \"Restoring\", \"Restored\",
+ and \"Failed\"."""
+
+
+class ElasticVolumeRevert(TypedDict, total=False):
+ """Reverts the elastic volume to the specified snapshot.
+
+ :ivar snapshot_resource_id: Resource identifier used to identify the Elastic Snapshot.
+ :vartype snapshot_resource_id: str
+ """
+ snapshotResourceId: str
+ """Resource identifier used to identify the Elastic Snapshot."""
-class CredentialsAkvDetails(TypedDict, total=False):
- """Specifies the Azure Key Vault settings for storing the bucket credentials.
- :ivar credentials_key_vault_uri: The base URI of the Azure Key Vault that is used when storing
- the bucket credentials.
- :vartype credentials_key_vault_uri: str
- :ivar secret_name: The name of the secret stored in Azure Key Vault. The associated key pair
- has the following structure:
+class ElasticVolumeSnapshotProperties(TypedDict, total=False):
+ """Elastic Volume Snapshot Properties.
- {
- "access_key_id": "",
- "secret_access_key": ""
- }.
- :vartype secret_name: str
+ :ivar snapshot_policy_resource_id: Snapshot Policy ResourceId.
+ :vartype snapshot_policy_resource_id: str
"""
- credentialsKeyVaultUri: str
- """The base URI of the Azure Key Vault that is used when storing the bucket credentials."""
- secretName: str
- """The name of the secret stored in Azure Key Vault. The associated key pair has the following
- structure:
-
- {
- \"access_key_id\": \"\",
- \"secret_access_key\": \"\"
- }."""
+ snapshotPolicyResourceId: str
+ """Snapshot Policy ResourceId."""
-class DailySchedule(TypedDict, total=False):
- """Daily Schedule properties.
+class ElasticVolumeUpdate(TypedDict, total=False):
+ """The type used for update operations of the ElasticVolume.
- :ivar snapshots_to_keep: Daily snapshot count to keep.
- :vartype snapshots_to_keep: int
- :ivar hour: Indicates which hour in UTC timezone a snapshot should be taken.
- :vartype hour: int
- :ivar minute: Indicates which minute snapshot should be taken.
- :vartype minute: int
- :ivar used_bytes: Resource size in bytes, current storage usage for the volume in bytes.
- :vartype used_bytes: int
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar properties: The resource-specific properties for this resource.
+ :vartype properties: "ElasticVolumeUpdateProperties"
"""
- snapshotsToKeep: int
- """Daily snapshot count to keep."""
- hour: int
- """Indicates which hour in UTC timezone a snapshot should be taken."""
- minute: int
- """Indicates which minute snapshot should be taken."""
- usedBytes: int
- """Resource size in bytes, current storage usage for the volume in bytes."""
+ tags: dict[str, str]
+ """Resource tags."""
+ properties: "ElasticVolumeUpdateProperties"
+ """The resource-specific properties for this resource."""
-class DestinationReplication(TypedDict, total=False):
- """Destination replication properties.
+class ElasticVolumeUpdateProperties(TypedDict, total=False):
+ """The updatable properties of the ElasticVolume.
- :ivar resource_id: The resource ID of the remote volume.
- :vartype resource_id: str
- :ivar replication_type: Indicates whether the replication is cross zone or cross region. Known
- values are: "CrossRegionReplication" and "CrossZoneReplication".
- :vartype replication_type: Union[str, "ReplicationType"]
- :ivar region: The remote region for the destination volume.
- :vartype region: str
- :ivar zone: The remote zone for the destination volume.
- :vartype zone: str
+ :ivar size: Maximum size allowed for a volume in bytes. Valid values are in the range 1GiB to
+ 16TiB. Values expressed in bytes as multiples of 1 GiB.
+ :vartype size: int
+ :ivar export_policy: Set of export policy rules.
+ :vartype export_policy: "ElasticExportPolicy"
+ :ivar data_protection: Data protection configuration option for the volume, including snapshot
+ policies and backup.
+ :vartype data_protection: "ElasticVolumeDataProtectionPatchProperties"
+ :ivar snapshot_directory_visibility: Controls the visibility of the volume's read-only snapshot
+ directory, which provides access to each of the volume's snapshots. Known values are: "Hidden"
+ and "Visible".
+ :vartype snapshot_directory_visibility: Union[str, "SnapshotDirectoryVisibility"]
+ :ivar smb_properties: SMB Properties.
+ :vartype smb_properties: "ElasticSmbPatchProperties"
"""
- resourceId: str
- """The resource ID of the remote volume."""
- replicationType: Union[str, "ReplicationType"]
- """Indicates whether the replication is cross zone or cross region. Known values are:
- \"CrossRegionReplication\" and \"CrossZoneReplication\"."""
- region: str
- """The remote region for the destination volume."""
- zone: str
- """The remote zone for the destination volume."""
+ size: int
+ """Maximum size allowed for a volume in bytes. Valid values are in the range 1GiB to 16TiB. Values
+ expressed in bytes as multiples of 1 GiB."""
+ exportPolicy: "ElasticExportPolicy"
+ """Set of export policy rules."""
+ dataProtection: "ElasticVolumeDataProtectionPatchProperties"
+ """Data protection configuration option for the volume, including snapshot policies and backup."""
+ snapshotDirectoryVisibility: Union[str, "SnapshotDirectoryVisibility"]
+ """Controls the visibility of the volume's read-only snapshot directory, which provides access to
+ each of the volume's snapshots. Known values are: \"Hidden\" and \"Visible\"."""
+ smbProperties: "ElasticSmbPatchProperties"
+ """SMB Properties."""
class EncryptionIdentity(TypedDict, total=False):
@@ -1503,6 +2987,113 @@ class EncryptionTransitionRequest(TypedDict, total=False):
"""Identifier of the private endpoint to reach the Azure Key Vault. Required."""
+class EntraIdAkvConfig(TypedDict, total=False):
+ """Using AKV config, certificate will be fetched, which will contain private key & public
+ certificate, that correspond to the public certificate which is uploaded on the application
+ created by customer. This will be used further for authentication.
+
+ :ivar azure_key_vault_uri: The Azure Key Vault URI where the Entra ID credentials are stored.
+ Required.
+ :vartype azure_key_vault_uri: str
+ :ivar certificate_name: The name of the certificate in Azure Key Vault. Required.
+ :vartype certificate_name: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault.
+ :vartype user_assigned_identity: str
+ """
+
+ azureKeyVaultUri: Required[str]
+ """The Azure Key Vault URI where the Entra ID credentials are stored. Required."""
+ certificateName: Required[str]
+ """The name of the certificate in Azure Key Vault. Required."""
+ userAssignedIdentity: str
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault."""
+
+
+class EntraIdAkvConfigPatch(TypedDict, total=False):
+ """Entra ID Patch configuration for the account.
+
+ :ivar azure_key_vault_uri: The Azure Key Vault URI where the Entra ID credentials are stored.
+ :vartype azure_key_vault_uri: str
+ :ivar certificate_name: The name of the certificate in Azure Key Vault.
+ :vartype certificate_name: str
+ :ivar user_assigned_identity: The ARM resource identifier of the user assigned identity used to
+ authenticate with key vault.
+ :vartype user_assigned_identity: str
+ """
+
+ azureKeyVaultUri: str
+ """The Azure Key Vault URI where the Entra ID credentials are stored."""
+ certificateName: str
+ """The name of the certificate in Azure Key Vault."""
+ userAssignedIdentity: str
+ """The ARM resource identifier of the user assigned identity used to authenticate with key vault."""
+
+
+class EntraIdConfig(TypedDict, total=False):
+ """Entra ID configuration for the account.
+
+ :ivar application_id: ApplicationId of the app created by customer to provide authentication
+ and required API permissions for Microsoft Graph endpoint. Required.
+ :vartype application_id: str
+ :ivar domain: Domain of the Active directory synced to Entra ID for hybrid identities.
+ Required.
+ :vartype domain: str
+ :ivar server_name_prefix: Using ServerNamePrefix, FQDN (Fully Qualified Domain Name) will be
+ generated for SMB share, using this FQDN, SMB Share will be mounted on Entra Joined VM.
+ Required.
+ :vartype server_name_prefix: str
+ :ivar entra_id_akv_config: Using AKV config, certificate will be fetched, which will contain
+ private key & public certificate, that correspond to the public certificate which is uploaded
+ on the application created by customer. This will be used further for authentication.
+ :vartype entra_id_akv_config: "EntraIdAkvConfig"
+ """
+
+ applicationId: Required[str]
+ """ApplicationId of the app created by customer to provide authentication and required API
+ permissions for Microsoft Graph endpoint. Required."""
+ domain: Required[str]
+ """Domain of the Active directory synced to Entra ID for hybrid identities. Required."""
+ serverNamePrefix: Required[str]
+ """Using ServerNamePrefix, FQDN (Fully Qualified Domain Name) will be generated for SMB share,
+ using this FQDN, SMB Share will be mounted on Entra Joined VM. Required."""
+ entraIdAkvConfig: "EntraIdAkvConfig"
+ """Using AKV config, certificate will be fetched, which will contain private key & public
+ certificate, that correspond to the public certificate which is uploaded on the application
+ created by customer. This will be used further for authentication."""
+
+
+class EntraIdConfigPatch(TypedDict, total=False):
+ """Entra ID Patch configuration for the account.
+
+ :ivar application_id: ApplicationId of the app created by customer to provide authentication
+ and required API permissions for Microsoft Graph endpoint.
+ :vartype application_id: str
+ :ivar domain: Domain of the Active directory synced to Entra ID for hybrid identities.
+ :vartype domain: str
+ :ivar server_name_prefix: Using ServerNamePrefix, FQDN (Fully Qualified Domain Name) will be
+ generated for SMB share, using this FQDN, SMB Share will be mounted on Entra Joined VM.
+ :vartype server_name_prefix: str
+ :ivar entra_id_akv_config: Using AKV config, certificate will be fetched, which will contain
+ private key & public certificate, that correspond to the public certificate which is uploaded
+ on the application created by customer. This will be used further for authentication.
+ :vartype entra_id_akv_config: "EntraIdAkvConfigPatch"
+ """
+
+ applicationId: str
+ """ApplicationId of the app created by customer to provide authentication and required API
+ permissions for Microsoft Graph endpoint."""
+ domain: str
+ """Domain of the Active directory synced to Entra ID for hybrid identities."""
+ serverNamePrefix: str
+ """Using ServerNamePrefix, FQDN (Fully Qualified Domain Name) will be generated for SMB share,
+ using this FQDN, SMB Share will be mounted on Entra Joined VM."""
+ entraIdAkvConfig: "EntraIdAkvConfigPatch"
+ """Using AKV config, certificate will be fetched, which will contain private key & public
+ certificate, that correspond to the public certificate which is uploaded on the application
+ created by customer. This will be used further for authentication."""
+
+
class ExportPolicyRule(TypedDict, total=False):
"""Volume Export Policy Rule.
@@ -1698,6 +3289,154 @@ class KeyVaultProperties(TypedDict, total=False):
\"Error\", and \"Updating\"."""
+class LdapConfiguration(TypedDict, total=False):
+ """LDAP configuration.
+
+ :ivar domain: Name of the LDAP configuration domain.
+ :vartype domain: str
+ :ivar ldap_servers: List of LDAP server IP addresses (IPv4 only) for the LDAP domain.
+ :vartype ldap_servers: list[str]
+ :ivar ldap_over_tls: Specifies whether or not the LDAP traffic needs to be secured via TLS.
+ :vartype ldap_over_tls: bool
+ :ivar server_ca_certificate: When LDAP over SSL/TLS is enabled, the LDAP client is required to
+ have base64 encoded ldap servers CA certificate.
+ :vartype server_ca_certificate: str
+ :ivar certificate_cn_host: The CN host name used while generating the certificate, LDAP Over
+ TLS requires the CN host name to create DNS host entry.
+ :vartype certificate_cn_host: str
+ :ivar dns_servers: List of DNS server IPv4 addresses for resolving the CN host certificate.
+ This parameter is used when LDAP over TLS is enabled.
+ :vartype dns_servers: list[str]
+ :ivar ldap_port: Port number for LDAP communication. Default is 389 for LDAP.
+ :vartype ldap_port: int
+ :ivar user_dn: This specifies the user DN (Distinguished Name), which overrides the base DN for
+ user lookups.
+ :vartype user_dn: str
+ :ivar group_dn: This specifies the group DN (Distinguished Name), which overrides the base DN
+ for group lookups.
+ :vartype group_dn: str
+ :ivar net_group_dn: This specifies the netgroup DN (Distinguished Name), which overrides the
+ base DN for netgroup lookups.
+ :vartype net_group_dn: str
+ :ivar bind_authentication_level: The authentication level to use when binding to the LDAP
+ server, defaults to Anonymous. Known values are: "Anonymous" and "Simple".
+ :vartype bind_authentication_level: Union[str, "BindAuthenticationLevel"]
+ :ivar bind_dn: The distinguished name (DN) to bind as when performing LDAP operations.
+ :vartype bind_dn: str
+ :ivar bind_password_akv_config: The Azure Key Vault configuration where the Bind DN
+ (Distinguished Name) user password is stored.
+ :vartype bind_password_akv_config: "BindPasswordAkvConfig"
+ """
+
+ domain: str
+ """Name of the LDAP configuration domain."""
+ ldapServers: list[str]
+ """List of LDAP server IP addresses (IPv4 only) for the LDAP domain."""
+ ldapOverTLS: bool
+ """Specifies whether or not the LDAP traffic needs to be secured via TLS."""
+ serverCACertificate: str
+ """When LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded ldap
+ servers CA certificate."""
+ certificateCNHost: Optional[str]
+ """The CN host name used while generating the certificate, LDAP Over TLS requires the CN host name
+ to create DNS host entry."""
+ dnsServers: list[str]
+ """List of DNS server IPv4 addresses for resolving the CN host certificate. This parameter is used
+ when LDAP over TLS is enabled."""
+ ldapPort: int
+ """Port number for LDAP communication. Default is 389 for LDAP."""
+ userDN: str
+ """This specifies the user DN (Distinguished Name), which overrides the base DN for user lookups."""
+ groupDN: str
+ """This specifies the group DN (Distinguished Name), which overrides the base DN for group
+ lookups."""
+ netGroupDN: str
+ """This specifies the netgroup DN (Distinguished Name), which overrides the base DN for netgroup
+ lookups."""
+ bindAuthenticationLevel: Union[str, "BindAuthenticationLevel"]
+ """The authentication level to use when binding to the LDAP server, defaults to Anonymous. Known
+ values are: \"Anonymous\" and \"Simple\"."""
+ bindDN: str
+ """The distinguished name (DN) to bind as when performing LDAP operations."""
+ bindPasswordAkvConfig: "BindPasswordAkvConfig"
+ """The Azure Key Vault configuration where the Bind DN (Distinguished Name) user password is
+ stored."""
+
+
+class LdapConfigurationPatch(TypedDict, total=False):
+ """LDAP configuration for PATCH operations (no default values).
+
+ :ivar domain: Name of the LDAP configuration domain.
+ :vartype domain: str
+ :ivar ldap_servers: List of LDAP server IP addresses (IPv4 only) for the LDAP domain.
+ :vartype ldap_servers: list[str]
+ :ivar ldap_over_tls: Specifies whether or not the LDAP traffic needs to be secured via TLS.
+ :vartype ldap_over_tls: bool
+ :ivar server_ca_certificate: When LDAP over SSL/TLS is enabled, the LDAP client is required to
+ have base64 encoded ldap servers CA certificate.
+ :vartype server_ca_certificate: str
+ :ivar certificate_cn_host: The CN host name used while generating the certificate, LDAP Over
+ TLS requires the CN host name to create DNS host entry.
+ :vartype certificate_cn_host: str
+ :ivar dns_servers: List of DNS server IPv4 addresses for resolving the CN host certificate.
+ This parameter is used when LDAP over TLS is enabled.
+ :vartype dns_servers: list[str]
+ :ivar ldap_port: Port number for LDAP communication. Default is 389 for LDAP.
+ :vartype ldap_port: int
+ :ivar user_dn: This specifies the user DN (Distinguished Name), which overrides the base DN for
+ user lookups.
+ :vartype user_dn: str
+ :ivar group_dn: This specifies the group DN (Distinguished Name), which overrides the base DN
+ for group lookups.
+ :vartype group_dn: str
+ :ivar net_group_dn: This specifies the netgroup DN (Distinguished Name), which overrides the
+ base DN for netgroup lookups.
+ :vartype net_group_dn: str
+ :ivar bind_authentication_level: The authentication level to use when binding to the LDAP
+ server, defaults to Anonymous. Known values are: "Anonymous" and "Simple".
+ :vartype bind_authentication_level: Union[str, "BindAuthenticationLevel"]
+ :ivar bind_dn: The distinguished name (DN) to bind as when performing LDAP operations.
+ :vartype bind_dn: str
+ :ivar bind_password_akv_config: The Azure Key Vault configuration where the Bind DN
+ (Distinguished Name) user password is stored.
+ :vartype bind_password_akv_config: "BindPasswordAkvConfigPatch"
+ """
+
+ domain: str
+ """Name of the LDAP configuration domain."""
+ ldapServers: list[str]
+ """List of LDAP server IP addresses (IPv4 only) for the LDAP domain."""
+ ldapOverTLS: bool
+ """Specifies whether or not the LDAP traffic needs to be secured via TLS."""
+ serverCACertificate: str
+ """When LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded ldap
+ servers CA certificate."""
+ certificateCNHost: Optional[str]
+ """The CN host name used while generating the certificate, LDAP Over TLS requires the CN host name
+ to create DNS host entry."""
+ dnsServers: list[str]
+ """List of DNS server IPv4 addresses for resolving the CN host certificate. This parameter is used
+ when LDAP over TLS is enabled."""
+ ldapPort: int
+ """Port number for LDAP communication. Default is 389 for LDAP."""
+ userDN: str
+ """This specifies the user DN (Distinguished Name), which overrides the base DN for user lookups."""
+ groupDN: str
+ """This specifies the group DN (Distinguished Name), which overrides the base DN for group
+ lookups."""
+ netGroupDN: str
+ """This specifies the netgroup DN (Distinguished Name), which overrides the base DN for netgroup
+ lookups."""
+ bindAuthenticationLevel: Union[str, "BindAuthenticationLevel"]
+ """The authentication level to use when binding to the LDAP server, defaults to Anonymous. Known
+ values are: \"Anonymous\" and \"Simple\"."""
+ bindDN: str
+ """The distinguished name (DN) to bind as when performing LDAP operations."""
+ bindPasswordAkvConfig: "BindPasswordAkvConfigPatch"
+ """The Azure Key Vault configuration where the Bind DN (Distinguished Name) user password is
+ stored."""
+
+
class LdapSearchScopeOpt(TypedDict, total=False):
"""LDAP search scope.
@@ -1856,36 +3595,20 @@ class NetAppAccount(TrackedResource):
class NetAppAccountPatch(TypedDict, total=False):
"""NetApp account patch resource.
- :ivar location: Resource location.
- :vartype location: str
- :ivar id: Resource Id.
- :vartype id: str
- :ivar name: Resource name.
- :vartype name: str
- :ivar type: Resource type.
- :vartype type: str
+ :ivar identity: The managed service identities assigned to this resource.
+ :vartype identity: "ManagedServiceIdentity"
:ivar tags: Resource tags.
:vartype tags: dict[str, str]
:ivar properties: NetApp Account properties.
- :vartype properties: "AccountProperties"
- :ivar identity: The identity used for the resource.
- :vartype identity: "ManagedServiceIdentity"
+ :vartype properties: "AccountPropertiesPatch"
"""
- location: str
- """Resource location."""
- id: str
- """Resource Id."""
- name: str
- """Resource name."""
- type: str
- """Resource type."""
+ identity: "ManagedServiceIdentity"
+ """The managed service identities assigned to this resource."""
tags: dict[str, str]
"""Resource tags."""
- properties: "AccountProperties"
+ properties: "AccountPropertiesPatch"
"""NetApp Account properties."""
- identity: "ManagedServiceIdentity"
- """The identity used for the resource."""
class NfsUser(TypedDict, total=False):
@@ -1975,8 +3698,8 @@ class PoolChangeRequest(TypedDict, total=False):
class PoolPatchProperties(TypedDict, total=False):
"""Patchable pool properties.
- :ivar size: Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value
- must be multiple of 1099511627776).
+ :ivar size: Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888
+ bytes) or in 1TiB chunks (value must be multiple of 1099511627776).
:vartype size: int
:ivar qos_type: The qos type of the pool. Known values are: "Auto" and "Manual".
:vartype qos_type: Union[str, "QosType"]
@@ -1988,8 +3711,8 @@ class PoolPatchProperties(TypedDict, total=False):
"""
size: int
- """Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be
- multiple of 1099511627776)."""
+ """Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888 bytes) or in
+ 1TiB chunks (value must be multiple of 1099511627776)."""
qosType: Union[str, "QosType"]
"""The qos type of the pool. Known values are: \"Auto\" and \"Manual\"."""
coolAccess: bool
@@ -2004,8 +3727,8 @@ class PoolProperties(TypedDict, total=False):
:ivar pool_id: UUID v4 used to identify the Pool.
:vartype pool_id: str
- :ivar size: Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value
- must be multiple of 1099511627776). Required.
+ :ivar size: Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888
+ bytes) or in 1TiB chunks (value must be multiple of 1099511627776). Required.
:vartype size: int
:ivar service_level: The service level of the file system. Required. Known values are:
"Standard", "Premium", "Ultra", "StandardZRS", and "Flexible".
@@ -2032,8 +3755,8 @@ class PoolProperties(TypedDict, total=False):
poolId: str
"""UUID v4 used to identify the Pool."""
size: Required[int]
- """Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be
- multiple of 1099511627776). Required."""
+ """Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888 bytes) or in
+ 1TiB chunks (value must be multiple of 1099511627776). Required."""
serviceLevel: Required[Union[str, "ServiceLevel"]]
"""The service level of the file system. Required. Known values are: \"Standard\", \"Premium\",
\"Ultra\", \"StandardZRS\", and \"Flexible\"."""
@@ -2343,6 +4066,57 @@ class ResourceNameAvailabilityRequest(TypedDict, total=False):
"""Resource group name. Required."""
+class SecretPassword(TypedDict, total=False):
+ """Access password from Azure KeyVault Secrets to connect Active Directory.
+
+ :ivar key_vault_properties: Properties provided by KeyVault.
+ :vartype key_vault_properties: "SecretPasswordKeyVaultProperties"
+ :ivar identity: Identity used to authenticate to KeyVault. Applicable if keySource is
+ 'Microsoft.KeyVault'.
+ :vartype identity: "SecretPasswordIdentity"
+ """
+
+ keyVaultProperties: "SecretPasswordKeyVaultProperties"
+ """Properties provided by KeyVault."""
+ identity: "SecretPasswordIdentity"
+ """Identity used to authenticate to KeyVault. Applicable if keySource is 'Microsoft.KeyVault'."""
+
+
+class SecretPasswordIdentity(TypedDict, total=False):
+ """Identity used to authenticate with key vault.
+
+ :ivar principal_id: The principal ID (object ID) of the identity used to authenticate with key
+ vault. Read-only.
+ :vartype principal_id: str
+ :ivar user_assigned_identity: The Azure resource identifier of the user assigned identity used
+ to authenticate with key vault. Applicable if identity.type has 'UserAssigned'. It should match
+ key of identity.userAssignedIdentities.
+ :vartype user_assigned_identity: str
+ """
+
+ principalId: str
+ """The principal ID (object ID) of the identity used to authenticate with key vault. Read-only."""
+ userAssignedIdentity: str
+ """The Azure resource identifier of the user assigned identity used to authenticate with key
+ vault. Applicable if identity.type has 'UserAssigned'. It should match key of
+ identity.userAssignedIdentities."""
+
+
+class SecretPasswordKeyVaultProperties(TypedDict, total=False):
+ """Properties of key vault to get the secrets for password.
+
+ :ivar key_vault_uri: The Uri of KeyVault. Required.
+ :vartype key_vault_uri: str
+ :ivar secret_name: The name of KeyVault password secret. Required.
+ :vartype secret_name: str
+ """
+
+ keyVaultUri: Required[str]
+ """The Uri of KeyVault. Required."""
+ secretName: Required[str]
+ """The name of KeyVault password secret. Required."""
+
+
class SmbSettings(TypedDict, total=False):
"""SMB settings for the cache.
@@ -2912,7 +4686,8 @@ class VolumePatchProperties(TypedDict, total=False):
:ivar usage_threshold: 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 500TiB, and on an
- exceptional basis, from to 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB.
+ exceptional basis, from to 2400GiB to 2400TiB. For extra large volumes, valid values are in the
+ range 2400GiB to 7200TiB. Values expressed in bytes as multiples of 1 GiB.
:vartype usage_threshold: int
:ivar export_policy: Set of export policy rules.
:vartype export_policy: "VolumePatchPropertiesExportPolicy"
@@ -2978,7 +4753,8 @@ class VolumePatchProperties(TypedDict, total=False):
"""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 500TiB, and on an exceptional basis, from to
- 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB."""
+ 2400GiB to 2400TiB. For extra large volumes, valid values are in the range 2400GiB to 7200TiB.
+ Values expressed in bytes as multiples of 1 GiB."""
exportPolicy: "VolumePatchPropertiesExportPolicy"
"""Set of export policy rules."""
protocolTypes: list[str]
@@ -3074,8 +4850,8 @@ class VolumeProperties(TypedDict, total=False):
:ivar usage_threshold: 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 500TiB, and on an
- exceptional basis, from to 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB.
- Required.
+ exceptional basis, from to 2400GiB to 2400TiB. For extra large volumes, valid values are in the
+ range 2400GiB to 7200TiB. Values expressed in bytes as multiples of 1 GiB. Required.
:vartype usage_threshold: int
:ivar export_policy: Set of export policy rules.
:vartype export_policy: "VolumePropertiesExportPolicy"
@@ -3165,6 +4941,9 @@ class VolumeProperties(TypedDict, total=False):
:vartype key_vault_private_endpoint_resource_id: str
:ivar ldap_enabled: Specifies whether LDAP is enabled or not for a given NFS volume.
:vartype ldap_enabled: bool
+ :ivar ldap_server_type: Specifies the type of LDAP server for a given NFS volume. Known values
+ are: "ActiveDirectory" and "OpenLDAP".
+ :vartype ldap_server_type: Union[str, "LdapServerType"]
:ivar cool_access: Specifies whether Cool Access(tiering) is enabled for the volume.
:vartype cool_access: bool
:ivar coolness_period: Specifies the number of days after which data that is not accessed by
@@ -3243,11 +5022,27 @@ class VolumeProperties(TypedDict, total=False):
:vartype provisioned_availability_zone: str
:ivar is_large_volume: Specifies whether volume is a Large Volume or Regular Volume.
:vartype is_large_volume: bool
+ :ivar large_volume_type: Specifies the type of the Large Volume. When set to 'LargeVolume', the
+ large volume is created with standard configuration. If it is set to
+ 'ExtraLargeVolume7Dot2PiB', the extra large volume is created with higher capacity limit 7.2PiB
+ with cool access enabled, delivering higher capacity limit with lower costs. Known values are:
+ "LargeVolume" and "PremExtraLargeVolume7Dot2PiB".
+ :vartype large_volume_type: Union[str, "LargeVolumeType"]
:ivar originating_resource_id: Id of the snapshot or backup that the volume is restored from.
:vartype originating_resource_id: str
:ivar inherited_size_in_bytes: Space shared by short term clone volume with parent volume in
bytes.
:vartype inherited_size_in_bytes: int
+ :ivar language: Language supported for volume. Known values are: "c.utf-8", "utf8mb4", "ar",
+ "ar.utf-8", "hr", "hr.utf-8", "cs", "cs.utf-8", "da", "da.utf-8", "nl", "nl.utf-8", "en",
+ "en.utf-8", "fi", "fi.utf-8", "fr", "fr.utf-8", "de", "de.utf-8", "he", "he.utf-8", "hu",
+ "hu.utf-8", "it", "it.utf-8", "ja", "ja.utf-8", "ja-v1", "ja-v1.utf-8", "ja-jp.pck",
+ "ja-jp.pck.utf-8", "ja-jp.932", "ja-jp.932.utf-8", "ja-jp.pck-v2", "ja-jp.pck-v2.utf-8", "ko",
+ "ko.utf-8", "no", "no.utf-8", "pl", "pl.utf-8", "pt", "pt.utf-8", "c", "ro", "ro.utf-8", "ru",
+ "ru.utf-8", "zh", "zh.utf-8", "zh.gbk", "zh.gbk.utf-8", "zh-tw.big5", "zh-tw.big5.utf-8",
+ "zh-tw", "zh-tw.utf-8", "sk", "sk.utf-8", "sl", "sl.utf-8", "es", "es.utf-8", "sv", "sv.utf-8",
+ "tr", "tr.utf-8", "en-us", and "en-us.utf-8".
+ :vartype language: Union[str, "VolumeLanguage"]
:ivar breakthrough_mode: Specifies whether the volume operates in Breakthrough Mode. Known
values are: "Enabled" and "Disabled".
:vartype breakthrough_mode: Union[str, "BreakthroughMode"]
@@ -3264,7 +5059,8 @@ class VolumeProperties(TypedDict, total=False):
"""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 500TiB, and on an exceptional basis, from to
- 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB. Required."""
+ 2400GiB to 2400TiB. For extra large volumes, valid values are in the range 2400GiB to 7200TiB.
+ Values expressed in bytes as multiples of 1 GiB. Required."""
exportPolicy: "VolumePropertiesExportPolicy"
"""Set of export policy rules."""
protocolTypes: list[str]
@@ -3343,6 +5139,9 @@ class VolumeProperties(TypedDict, total=False):
volume. Only applicable if encryptionKeySource = 'Microsoft.KeyVault'."""
ldapEnabled: bool
"""Specifies whether LDAP is enabled or not for a given NFS volume."""
+ ldapServerType: Union[str, "LdapServerType"]
+ """Specifies the type of LDAP server for a given NFS volume. Known values are: \"ActiveDirectory\"
+ and \"OpenLDAP\"."""
coolAccess: bool
"""Specifies whether Cool Access(tiering) is enabled for the volume."""
coolnessPeriod: int
@@ -3414,10 +5213,28 @@ class VolumeProperties(TypedDict, total=False):
zone where the volume resides."""
isLargeVolume: bool
"""Specifies whether volume is a Large Volume or Regular Volume."""
+ largeVolumeType: Union[str, "LargeVolumeType"]
+ """Specifies the type of the Large Volume. When set to 'LargeVolume', the large volume is created
+ with standard configuration. If it is set to 'ExtraLargeVolume7Dot2PiB', the extra large volume
+ is created with higher capacity limit 7.2PiB with cool access enabled, delivering higher
+ capacity limit with lower costs. Known values are: \"LargeVolume\" and
+ \"PremExtraLargeVolume7Dot2PiB\"."""
originatingResourceId: Optional[str]
"""Id of the snapshot or backup that the volume is restored from."""
inheritedSizeInBytes: Optional[int]
"""Space shared by short term clone volume with parent volume in bytes."""
+ language: Union[str, "VolumeLanguage"]
+ """Language supported for volume. Known values are: \"c.utf-8\", \"utf8mb4\", \"ar\",
+ \"ar.utf-8\", \"hr\", \"hr.utf-8\", \"cs\", \"cs.utf-8\", \"da\", \"da.utf-8\", \"nl\",
+ \"nl.utf-8\", \"en\", \"en.utf-8\", \"fi\", \"fi.utf-8\", \"fr\", \"fr.utf-8\", \"de\",
+ \"de.utf-8\", \"he\", \"he.utf-8\", \"hu\", \"hu.utf-8\", \"it\", \"it.utf-8\", \"ja\",
+ \"ja.utf-8\", \"ja-v1\", \"ja-v1.utf-8\", \"ja-jp.pck\", \"ja-jp.pck.utf-8\", \"ja-jp.932\",
+ \"ja-jp.932.utf-8\", \"ja-jp.pck-v2\", \"ja-jp.pck-v2.utf-8\", \"ko\", \"ko.utf-8\", \"no\",
+ \"no.utf-8\", \"pl\", \"pl.utf-8\", \"pt\", \"pt.utf-8\", \"c\", \"ro\", \"ro.utf-8\", \"ru\",
+ \"ru.utf-8\", \"zh\", \"zh.utf-8\", \"zh.gbk\", \"zh.gbk.utf-8\", \"zh-tw.big5\",
+ \"zh-tw.big5.utf-8\", \"zh-tw\", \"zh-tw.utf-8\", \"sk\", \"sk.utf-8\", \"sl\", \"sl.utf-8\",
+ \"es\", \"es.utf-8\", \"sv\", \"sv.utf-8\", \"tr\", \"tr.utf-8\", \"en-us\", and
+ \"en-us.utf-8\"."""
breakthroughMode: Union[str, "BreakthroughMode"]
"""Specifies whether the volume operates in Breakthrough Mode. Known values are: \"Enabled\" and
\"Disabled\"."""
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_change_key_vault.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_change_key_vault.py
index 6e8e9d3ced96..35bb656c3476 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_change_key_vault.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_change_key_vault.py
@@ -36,6 +36,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Accounts_ChangeKeyVault.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_ChangeKeyVault.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update.py
index 8c83fad6cb5d..4363d86ff3b3 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Accounts_CreateOrUpdate.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_CreateOrUpdate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update_ad.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update_ad.py
index 4f19db0575f1..6789d101a3b1 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update_ad.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update_ad.py
@@ -56,6 +56,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Accounts_CreateOrUpdateAD.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_CreateOrUpdateAD.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update_ldap_config.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update_ldap_config.py
new file mode 100644
index 000000000000..aa817653c92d
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_create_or_update_ldap_config.py
@@ -0,0 +1,66 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python accounts_create_or_update_ldap_config.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.accounts.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ body={
+ "location": "eastus",
+ "properties": {
+ "ldapConfiguration": {
+ "bindAuthenticationLevel": "Simple",
+ "bindDN": "cn=user,dc=domain,dc=com",
+ "bindPasswordAkvConfig": {
+ "azureKeyVaultUri": "https://myvault.vault.azure.net/",
+ "secretName": "bindPassword",
+ "userAssignedIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
+ },
+ "certificateCNHost": "ldap.krypton.com",
+ "domain": "example.com",
+ "groupDN": "OU=subdirectory,OU=directory,DC=example,DC=com",
+ "ldapOverTLS": False,
+ "ldapPort": 636,
+ "ldapServers": ["192.0.2.1", "192.0.2.2"],
+ "netGroupDN": "OU=subdirectory,OU=directory,DC=example,DC=com",
+ "serverCACertificate": "",
+ "userDN": "OU=subdirectory,OU=directory,DC=example,DC=com",
+ }
+ },
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/Accounts_CreateOrUpdateLdapConfig.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_delete.py
index 2a60c8b31239..bf639ac95bc7 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_delete.py
@@ -36,6 +36,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Accounts_Delete.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_get.py
index cc462272cd29..71880d87b44b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_get.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Accounts_Get.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_get_change_key_vault_information.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_get_change_key_vault_information.py
index 60db90c8f1cd..13a504552919 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_get_change_key_vault_information.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_get_change_key_vault_information.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Accounts_GetChangeKeyVaultInformation.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_GetChangeKeyVaultInformation.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_list.py
index c6f261ff612c..b3d07d310e41 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_list.py
@@ -37,6 +37,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Accounts_List.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_list_by_subscription.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_list_by_subscription.py
index 0294a52ca4a5..c243326ffdd7 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_list_by_subscription.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_list_by_subscription.py
@@ -35,6 +35,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Accounts_ListBySubscription.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_ListBySubscription.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_refresh_ldap_bind_password.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_refresh_ldap_bind_password.py
new file mode 100644
index 000000000000..42b9157d199b
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_refresh_ldap_bind_password.py
@@ -0,0 +1,41 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python accounts_refresh_ldap_bind_password.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.accounts.begin_refresh_ldap_bind_password(
+ resource_group_name="myRG",
+ account_name="account1",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/Accounts_RefreshLdapBindPassword.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_renew_credentials.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_renew_credentials.py
index ff3c25f28542..64ee0d83b212 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_renew_credentials.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_renew_credentials.py
@@ -36,6 +36,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Accounts_RenewCredentials.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_RenewCredentials.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_transition_encryption_key.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_transition_encryption_key.py
index 17f763a530ff..2dc16ca45c1e 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_transition_encryption_key.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_transition_encryption_key.py
@@ -36,6 +36,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Accounts_TransitionEncryptionKey.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_TransitionEncryptionKey.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_update.py
index fab17b8fd25c..784391c804da 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/accounts_update.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Accounts_Update.json
+# x-ms-original-file: 2026-05-15-preview/Accounts_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_create_or_update.py
new file mode 100644
index 000000000000..4fda357359b7
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_create_or_update.py
@@ -0,0 +1,73 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python active_directory_configs_create_or_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.active_directory_configs.begin_create_or_update(
+ resource_group_name="myRG",
+ active_directory_config_name="adconfig1",
+ body={
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/userAssignedIdentity1": {}
+ },
+ },
+ "location": "eastus",
+ "properties": {
+ "administrators": ["admin1"],
+ "backupOperators": ["backupOp1"],
+ "dns": ["10.10.10.4", "10.10.10.5"],
+ "domain": "example.net",
+ "organizationalUnit": "OU=Computers,DC=corp,DC=contoso,DC=com",
+ "secretPassword": {
+ "identity": {
+ "userAssignedIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/userAssignedIdentity1"
+ },
+ "keyVaultProperties": {
+ "keyVaultUri": "https://example.vault.azure.net/",
+ "secretName": "activeDirectoryPassword",
+ },
+ },
+ "securityOperators": ["secOp1"],
+ "site": "Default-First-Site-Name",
+ "smbServerName": "smbServer",
+ "userName": "admin1",
+ },
+ "tags": {"ac-tag1": "activeDirectoryConfig1"},
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ActiveDirectoryConfigs_CreateOrUpdate.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_delete.py
new file mode 100644
index 000000000000..30aa74cba624
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_delete.py
@@ -0,0 +1,41 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python active_directory_configs_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.active_directory_configs.begin_delete(
+ resource_group_name="myRG",
+ active_directory_config_name="adconfig1",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ActiveDirectoryConfigs_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_get.py
new file mode 100644
index 000000000000..af0d43395eed
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_get.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python active_directory_configs_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.active_directory_configs.get(
+ resource_group_name="myRG",
+ active_directory_config_name="adconfig1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ActiveDirectoryConfigs_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_resource_group.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_resource_group.py
new file mode 100644
index 000000000000..3b41a6ab76e0
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_resource_group.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python active_directory_configs_list_by_resource_group.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.active_directory_configs.list_by_resource_group(
+ resource_group_name="myRG",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ActiveDirectoryConfigs_ListByResourceGroup.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_subscription.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_subscription.py
new file mode 100644
index 000000000000..ba4d0f4dc19a
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_subscription.py
@@ -0,0 +1,40 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python active_directory_configs_list_by_subscription.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.active_directory_configs.list_by_subscription()
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ActiveDirectoryConfigs_ListBySubscription.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_update.py
new file mode 100644
index 000000000000..3180d3555f26
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_update.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python active_directory_configs_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.active_directory_configs.begin_update(
+ resource_group_name="myRG",
+ active_directory_config_name="adconfig1",
+ body={"properties": {"smbServerName": "smbServer2"}},
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ActiveDirectoryConfigs_Update.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_create.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_create.py
index 77b7df8c1534..8667d388fa6c 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_create.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_create.py
@@ -47,6 +47,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupPolicies_Create.json
+# x-ms-original-file: 2026-05-15-preview/BackupPolicies_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_delete.py
index 51862bf0a340..b81d412bad5f 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/BackupPolicies_Delete.json
+# x-ms-original-file: 2026-05-15-preview/BackupPolicies_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_get.py
index d6051005de31..f730a9737c0a 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupPolicies_Get.json
+# x-ms-original-file: 2026-05-15-preview/BackupPolicies_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_list.py
index 48b23062c56c..8992d86d180c 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/BackupPolicies_List.json
+# x-ms-original-file: 2026-05-15-preview/BackupPolicies_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_update.py
index 60a449258ac9..fe8d2f3b269e 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_policies_update.py
@@ -47,6 +47,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupPolicies_Update.json
+# x-ms-original-file: 2026-05-15-preview/BackupPolicies_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_create.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_create.py
index eca387a33da6..44fed360d90b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_create.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_create.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupVaults_Create.json
+# x-ms-original-file: 2026-05-15-preview/BackupVaults_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_delete.py
index 050d223b1894..d6e295325d26 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/BackupVaults_Delete.json
+# x-ms-original-file: 2026-05-15-preview/BackupVaults_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_get.py
index d06f0c5dd799..6ac9e7fcc557 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupVaults_Get.json
+# x-ms-original-file: 2026-05-15-preview/BackupVaults_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_list.py
index ef8624e47231..65266fc0c83a 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/BackupVaults_List.json
+# x-ms-original-file: 2026-05-15-preview/BackupVaults_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_update.py
index 46fcec610618..c9d1f34b6878 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backup_vaults_update.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupVaults_Update.json
+# x-ms-original-file: 2026-05-15-preview/BackupVaults_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_list_by_vault.py
similarity index 92%
rename from sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_list.py
rename to sdk/netapp/azure-mgmt-netapp/generated_samples/backups_list_by_vault.py
index a6708545b3e8..c0adb417cb20 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_list_by_vault.py
@@ -15,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-netapp
# USAGE
- python backups_under_backup_vault_list.py
+ python backups_list_by_vault.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -39,6 +39,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/BackupsUnderBackupVault_List.json
+# x-ms-original-file: 2026-05-15-preview/Backups_ListByVault.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_account_migrate.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_account_migrate.py
index a6ca232049fe..724461d41a2d 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_account_migrate.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_account_migrate.py
@@ -40,6 +40,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/BackupsUnderAccount_Migrate.json
+# x-ms-original-file: 2026-05-15-preview/BackupsUnderAccount_Migrate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_create.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_create.py
index f161e45f6ab8..4278c972b310 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_create.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_create.py
@@ -46,6 +46,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupsUnderBackupVault_Create.json
+# x-ms-original-file: 2026-05-15-preview/BackupsUnderBackupVault_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_delete.py
index 795d38fbdece..b08291fd5ff8 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_delete.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/BackupsUnderBackupVault_Delete.json
+# x-ms-original-file: 2026-05-15-preview/BackupsUnderBackupVault_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_get.py
index 0574aa4b2c1a..594ed54b7d6f 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_get.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupsUnderBackupVault_Get.json
+# x-ms-original-file: 2026-05-15-preview/BackupsUnderBackupVault_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_single_file_restore.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_single_file_restore.py
index a9922697b97f..920c0c8fd52e 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_single_file_restore.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_single_file_restore.py
@@ -43,6 +43,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/BackupsUnderBackupVault_SingleFileRestore.json
+# x-ms-original-file: 2026-05-15-preview/BackupsUnderBackupVault_SingleFileRestore.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_update.py
index f09777bc1eb6..c8abfb3da8e9 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_backup_vault_update.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/BackupsUnderBackupVault_Update.json
+# x-ms-original-file: 2026-05-15-preview/BackupsUnderBackupVault_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_volume_migrate.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_volume_migrate.py
index 534474345372..f92edbf3b498 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_volume_migrate.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_under_volume_migrate.py
@@ -42,6 +42,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/BackupsUnderVolume_Migrate.json
+# x-ms-original-file: 2026-05-15-preview/BackupsUnderVolume_Migrate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_create_or_update.py
index 10588c111464..e43834d59ebd 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_create_or_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_create_or_update.py
@@ -52,6 +52,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Buckets_CreateOrUpdate.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_CreateOrUpdate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_create_or_update_with_akv.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_create_or_update_with_akv.py
index 23348210c947..7ebb8dd6f9e4 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_create_or_update_with_akv.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_create_or_update_with_akv.py
@@ -1,3 +1,4 @@
+# pylint: disable=line-too-long,useless-suppression
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -42,10 +43,12 @@ def main():
"certificateAkvDetails": {
"certificateKeyVaultUri": "https://REDACTED.vault.azure.net/",
"certificateName": "my-certificate",
+ "userAssignedIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
},
"credentialsAkvDetails": {
"credentialsKeyVaultUri": "https://REDACTED.vault.azure.net/",
"secretName": "my-secret",
+ "userAssignedIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
},
},
"fileSystemUser": {"nfsUser": {"groupId": 1000, "userId": 1001}},
@@ -58,6 +61,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Buckets_CreateOrUpdateWithAkv.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_CreateOrUpdateWithAkv.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_delete.py
index 89ec9efea995..d904b35bbd7b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_delete.py
@@ -39,6 +39,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Buckets_Delete.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_generate_akv_credentials.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_generate_akv_credentials.py
index 824a2dacc4d8..90c45525f816 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_generate_akv_credentials.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_generate_akv_credentials.py
@@ -40,6 +40,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Buckets_GenerateAkvCredentials.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_GenerateAkvCredentials.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_generate_credentials.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_generate_credentials.py
index e2404effda8b..826fb5a03df3 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_generate_credentials.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_generate_credentials.py
@@ -41,6 +41,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Buckets_GenerateCredentials.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_GenerateCredentials.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_get.py
index 7b2ae229bf18..c79811eb0298 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_get.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Buckets_Get.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_list.py
index dbed6d970183..64a3b841557e 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_list.py
@@ -40,6 +40,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Buckets_List.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_refresh_certificate.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_refresh_certificate.py
index 732242e27eea..7e48f1e3562c 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_refresh_certificate.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_refresh_certificate.py
@@ -39,6 +39,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Buckets_RefreshCertificate.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_RefreshCertificate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_update.py
index 69dddea3d675..d18ba79f9ff8 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_update.py
@@ -50,6 +50,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Buckets_Update.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_update_with_akv.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_update_with_akv.py
index 869f01748287..86be1b95312d 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_update_with_akv.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/buckets_update_with_akv.py
@@ -1,3 +1,4 @@
+# pylint: disable=line-too-long,useless-suppression
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -42,10 +43,12 @@ def main():
"certificateAkvDetails": {
"certificateKeyVaultUri": "https://REDACTED.vault.azure.net/",
"certificateName": "my-certificate",
+ "userAssignedIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
},
"credentialsAkvDetails": {
"credentialsKeyVaultUri": "https://REDACTED.vault.azure.net/",
"secretName": "my-secret",
+ "userAssignedIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
},
},
"permissions": "ReadOnly",
@@ -56,6 +59,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Buckets_UpdateWithAkv.json
+# x-ms-original-file: 2026-05-15-preview/Buckets_UpdateWithAkv.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_create_or_update.py
index e74bda8de2e3..6aa34df5da83 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_create_or_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_create_or_update.py
@@ -58,6 +58,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Caches_CreateOrUpdate.json
+# x-ms-original-file: 2026-05-15-preview/Caches_CreateOrUpdate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_delete.py
index 0102d853c942..2ab77d636594 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_delete.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Caches_Delete.json
+# x-ms-original-file: 2026-05-15-preview/Caches_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_get.py
index 0d8999b838e3..b351fdfc17ad 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_get.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Caches_Get.json
+# x-ms-original-file: 2026-05-15-preview/Caches_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_list.py
index 925fc4a83051..af2bf9444506 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_list.py
@@ -39,6 +39,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Caches_List.json
+# x-ms-original-file: 2026-05-15-preview/Caches_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_list_peering_passphrases.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_list_peering_passphrases.py
index 7de70898a7fa..fce69f6a93df 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_list_peering_passphrases.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_list_peering_passphrases.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Caches_ListPeeringPassphrases.json
+# x-ms-original-file: 2026-05-15-preview/Caches_ListPeeringPassphrases.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_pool_change.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_pool_change.py
index f7aad11ca9ef..374f0e25a6b3 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_pool_change.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_pool_change.py
@@ -43,6 +43,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Caches_PoolChange.json
+# x-ms-original-file: 2026-05-15-preview/Caches_PoolChange.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_reset_smb_password.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_reset_smb_password.py
index c637c8e4a6bc..de448a7dee2b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_reset_smb_password.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_reset_smb_password.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Caches_ResetSmbPassword.json
+# x-ms-original-file: 2026-05-15-preview/Caches_ResetSmbPassword.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_update.py
index b7126cbc2726..677996a50624 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/caches_update.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Caches_Update.json
+# x-ms-original-file: 2026-05-15-preview/Caches_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/check_file_path_availability.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/check_file_path_availability.py
index 33c040074b8c..dd3a3393041f 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/check_file_path_availability.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/check_file_path_availability.py
@@ -34,13 +34,13 @@ def main():
response = client.net_app_resource.check_file_path_availability(
location="eastus",
body={
- "name": "my-exact-filepth",
- "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "name": "my-exact-filepath",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
},
)
print(response)
-# x-ms-original-file: 2026-05-01/CheckFilePathAvailability.json
+# x-ms-original-file: 2026-05-15-preview/CheckFilePathAvailability.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/check_name_availability.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/check_name_availability.py
index c299d537607d..44611b787fc2 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/check_name_availability.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/check_name_availability.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/CheckNameAvailability.json
+# x-ms-original-file: 2026-05-15-preview/CheckNameAvailability.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/check_quota_availability.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/check_quota_availability.py
index 03b8861422ac..36a693dc79a3 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/check_quota_availability.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/check_quota_availability.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/CheckQuotaAvailability.json
+# x-ms-original-file: 2026-05-15-preview/CheckQuotaAvailability.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_create_or_update.py
new file mode 100644
index 000000000000..ccbc127b4cba
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_create_or_update.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_accounts_create_or_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_accounts.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ body={"location": "eastus", "properties": {}, "tags": {"ac-tag1": "account1"}},
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticAccounts_CreateOrUpdate.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_delete.py
new file mode 100644
index 000000000000..cbf7c47672a7
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_delete.py
@@ -0,0 +1,41 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_accounts_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.elastic_accounts.begin_delete(
+ resource_group_name="myRG",
+ account_name="account1",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticAccounts_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_get.py
new file mode 100644
index 000000000000..502deace57bc
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_get.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_accounts_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_accounts.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticAccounts_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_resource_group.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_resource_group.py
new file mode 100644
index 000000000000..7300161cf70e
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_resource_group.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_accounts_list_by_resource_group.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_accounts.list_by_resource_group(
+ resource_group_name="myRG",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticAccounts_ListByResourceGroup.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_subscription.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_subscription.py
new file mode 100644
index 000000000000..04bcbd13b5d3
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_subscription.py
@@ -0,0 +1,40 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_accounts_list_by_subscription.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_accounts.list_by_subscription()
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticAccounts_ListBySubscription.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_update.py
new file mode 100644
index 000000000000..54ec2b371d2c
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_update.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_accounts_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_accounts.begin_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ body={"tags": {"Tag1": "Value1"}},
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticAccounts_Update.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_create_or_update.py
new file mode 100644
index 000000000000..10fe7c18f88e
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_create_or_update.py
@@ -0,0 +1,52 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_policies_create_or_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backup_policies.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_policy_name="backupPolicyName",
+ body={
+ "location": "westus",
+ "properties": {
+ "dailyBackupsToKeep": 10,
+ "monthlyBackupsToKeep": 10,
+ "policyState": "Enabled",
+ "weeklyBackupsToKeep": 10,
+ },
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupPolicies_CreateOrUpdate.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_delete.py
new file mode 100644
index 000000000000..2bddcde94b1a
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_delete.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_policies_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.elastic_backup_policies.begin_delete(
+ resource_group_name="resourceGroup",
+ account_name="accountName",
+ backup_policy_name="backupPolicyName",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupPolicies_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_get.py
new file mode 100644
index 000000000000..c9af1ef8158c
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_get.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_policies_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backup_policies.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_policy_name="backupPolicyName",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupPolicies_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_list.py
new file mode 100644
index 000000000000..6e1b612642dd
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_list.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_policies_list.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backup_policies.list_by_elastic_account(
+ resource_group_name="myRG",
+ account_name="account1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupPolicies_List.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_update.py
new file mode 100644
index 000000000000..e1b03b0dc745
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_update.py
@@ -0,0 +1,51 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_policies_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backup_policies.begin_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_policy_name="backupPolicyName",
+ body={
+ "properties": {
+ "dailyBackupsToKeep": 5,
+ "monthlyBackupsToKeep": 10,
+ "policyState": "Enabled",
+ "weeklyBackupsToKeep": 10,
+ }
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupPolicies_Update.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_create.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_create.py
new file mode 100644
index 000000000000..6bee277c3223
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_create.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_vaults_create.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backup_vaults.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ body={"location": "eastus"},
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupVaults_Create.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_delete.py
new file mode 100644
index 000000000000..330fa687520c
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_delete.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_vaults_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.elastic_backup_vaults.begin_delete(
+ resource_group_name="resourceGroup",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupVaults_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_get.py
new file mode 100644
index 000000000000..ce9f3c5ec758
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_get.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_vaults_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backup_vaults.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupVaults_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_list_by_elastic_account.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_list_by_elastic_account.py
new file mode 100644
index 000000000000..32edcdd710b8
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_list_by_elastic_account.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_vaults_list_by_elastic_account.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backup_vaults.list_by_elastic_account(
+ resource_group_name="myRG",
+ account_name="account1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupVaults_ListByElasticAccount.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_update.py
new file mode 100644
index 000000000000..a3b672f5d547
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_update.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backup_vaults_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backup_vaults.begin_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ body={"tags": {"Tag1": "Value1"}},
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackupVaults_Update.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_create_or_update.py
new file mode 100644
index 000000000000..5055c3005c04
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_create_or_update.py
@@ -0,0 +1,53 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backups_create_or_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backups.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ backup_name="backup1",
+ body={
+ "properties": {
+ "elasticSnapshotResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/elasticAccounts/account1/elasticCapacityPools/pool1/elasticVolumes/volume1/elasticSnapshots/snap1",
+ "elasticVolumeResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/elasticAccounts/account1/elasticCapacityPools/pool1/elasticVolumes/volume1",
+ "label": "myLabel",
+ "snapshotUsage": "UseExistingSnapshot",
+ }
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackups_CreateOrUpdate.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_delete.py
new file mode 100644
index 000000000000..e9d192430a57
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_delete.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backups_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.elastic_backups.begin_delete(
+ resource_group_name="resourceGroup",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ backup_name="backup1",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackups_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_get.py
new file mode 100644
index 000000000000..c27925e716f3
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_get.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backups_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backups.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ backup_name="backup1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackups_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_list_by_vault.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_list_by_vault.py
new file mode 100644
index 000000000000..ac613b3f0b86
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_list_by_vault.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backups_list_by_vault.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backups.list_by_vault(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackups_ListByVault.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_update.py
new file mode 100644
index 000000000000..4f1fecc13f85
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_update.py
@@ -0,0 +1,72 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_backups_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_backups.begin_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ backup_vault_name="backupVault1",
+ backup_name="backup1",
+ body={
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "elasticVolumeResourceId": "str",
+ "backupType": "str",
+ "completionDate": "2020-02-20 00:00:00",
+ "creationDate": "2020-02-20 00:00:00",
+ "elasticBackupPolicyResourceId": "str",
+ "elasticSnapshotResourceId": "str",
+ "failureReason": "str",
+ "label": "str",
+ "provisioningState": "str",
+ "size": 0,
+ "snapshotCreationDate": "2020-02-20 00:00:00",
+ "snapshotUsage": "str",
+ "volumeSize": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticBackups_Update.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_change_zone.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_change_zone.py
new file mode 100644
index 000000000000..7d09f2140bb0
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_change_zone.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_capacity_pools_change_zone.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_capacity_pools.begin_change_zone(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ body={"newZone": "3"},
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticCapacityPools_ChangeZone.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_check_volume_file_path_availability.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_check_volume_file_path_availability.py
new file mode 100644
index 000000000000..77342b8af768
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_check_volume_file_path_availability.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_capacity_pools_check_volume_file_path_availability.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_capacity_pools.check_volume_file_path_availability(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ body={"filePath": "my-exact-filepath"},
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticCapacityPools_CheckVolumeFilePathAvailability.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update.py
new file mode 100644
index 000000000000..d98106c25f8c
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update.py
@@ -0,0 +1,54 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_capacity_pools_create_or_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_capacity_pools.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ body={
+ "location": "eastus",
+ "properties": {
+ "activeDirectoryConfigResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/activeDirectoryConfigs/activeDirectoryConfig1",
+ "serviceLevel": "ZoneRedundant",
+ "size": 4398046511104,
+ "subnetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ },
+ "zones": ["1", "2", "3"],
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticCapacityPools_CreateOrUpdate.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update_cmk.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update_cmk.py
new file mode 100644
index 000000000000..45ef1a9dcdf0
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update_cmk.py
@@ -0,0 +1,58 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_capacity_pools_create_or_update_cmk.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_capacity_pools.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ body={
+ "location": "eastus",
+ "properties": {
+ "activeDirectoryConfigResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/activeDirectoryConfigs/activeDirectoryConfig1",
+ "encryption": {
+ "elasticPoolEncryptionKeySource": "NetApp",
+ "keyVaultPrivateEndpointResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myKeyVault/privateEndpointConnections/myKeyVaultPec",
+ },
+ "serviceLevel": "ZoneRedundant",
+ "size": 4398046511104,
+ "subnetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ },
+ "zones": ["1", "2", "3"],
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticCapacityPools_CreateOrUpdateCMK.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_delete.py
new file mode 100644
index 000000000000..4f13a7a44c06
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_delete.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_capacity_pools_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.elastic_capacity_pools.begin_delete(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticCapacityPools_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_get.py
new file mode 100644
index 000000000000..3f0d23307256
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_get.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_capacity_pools_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_capacity_pools.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticCapacityPools_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_list_by_elastic_account.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_list_by_elastic_account.py
new file mode 100644
index 000000000000..0a12ebc065d7
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_list_by_elastic_account.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_capacity_pools_list_by_elastic_account.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_capacity_pools.list_by_elastic_account(
+ resource_group_name="myRG",
+ account_name="account1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticCapacityPools_ListByElasticAccount.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_update.py
new file mode 100644
index 000000000000..5222835da9b4
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_update.py
@@ -0,0 +1,50 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_capacity_pools_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_capacity_pools.begin_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ body={
+ "properties": {
+ "activeDirectoryConfigResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/activeDirectoryConfigs/activeDirectoryConfig1",
+ "size": 4398046511104,
+ }
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticCapacityPools_Update.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_create_or_update.py
new file mode 100644
index 000000000000..097f2ee071eb
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_create_or_update.py
@@ -0,0 +1,53 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshot_policies_create_or_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_snapshot_policies.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ snapshot_policy_name="snapshotPolicyName",
+ body={
+ "location": "eastus",
+ "properties": {
+ "dailySchedule": {"hour": 14, "minute": 30, "snapshotsToKeep": 4},
+ "hourlySchedule": {"minute": 50, "snapshotsToKeep": 2},
+ "monthlySchedule": {"daysOfMonth": [10, 11, 12], "hour": 14, "minute": 15, "snapshotsToKeep": 5},
+ "policyStatus": "Enabled",
+ "weeklySchedule": {"days": ["Wednesday"], "hour": 14, "minute": 45, "snapshotsToKeep": 3},
+ },
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshotPolicies_CreateOrUpdate.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_delete.py
new file mode 100644
index 000000000000..7de3ca71ac96
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_delete.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshot_policies_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.elastic_snapshot_policies.begin_delete(
+ resource_group_name="resourceGroup",
+ account_name="accountName",
+ snapshot_policy_name="snapshotPolicyName",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshotPolicies_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_get.py
new file mode 100644
index 000000000000..a136c2a338c0
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_get.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshot_policies_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_snapshot_policies.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ snapshot_policy_name="snapshotPolicyName",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshotPolicies_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_by_elastic_account.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_by_elastic_account.py
new file mode 100644
index 000000000000..d298bc1aa501
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_by_elastic_account.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshot_policies_list_by_elastic_account.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_snapshot_policies.list_by_elastic_account(
+ resource_group_name="myRG",
+ account_name="account1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshotPolicies_ListByElasticAccount.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_elastic_volumes.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_elastic_volumes.py
new file mode 100644
index 000000000000..3c5a290b3532
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_elastic_volumes.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshot_policies_list_elastic_volumes.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_snapshot_policies.list_elastic_volumes(
+ resource_group_name="myRG",
+ account_name="account1",
+ snapshot_policy_name="snapshotPolicyName",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshotPolicies_ListElasticVolumes.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_update.py
new file mode 100644
index 000000000000..6ad0c52d8759
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_update.py
@@ -0,0 +1,52 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshot_policies_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_snapshot_policies.begin_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ snapshot_policy_name="snapshotPolicyName",
+ body={
+ "properties": {
+ "dailySchedule": {"hour": 14, "minute": 30, "snapshotsToKeep": 4},
+ "hourlySchedule": {"minute": 50, "snapshotsToKeep": 2},
+ "monthlySchedule": {"daysOfMonth": [10, 11, 12], "hour": 14, "minute": 15, "snapshotsToKeep": 5},
+ "policyStatus": "Enabled",
+ "weeklySchedule": {"days": ["Wednesday"], "hour": 14, "minute": 45, "snapshotsToKeep": 3},
+ }
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshotPolicies_Update.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_create_or_update.py
new file mode 100644
index 000000000000..6ba94db3478b
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_create_or_update.py
@@ -0,0 +1,59 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshots_create_or_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_snapshots.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ snapshot_name="snapshot1",
+ body={
+ "id": "str",
+ "name": "str",
+ "properties": {"provisioningState": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshots_CreateOrUpdate.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_delete.py
new file mode 100644
index 000000000000..3417a97a4e28
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_delete.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshots_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.elastic_snapshots.begin_delete(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ snapshot_name="snapshot1",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshots_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_get.py
new file mode 100644
index 000000000000..d4dc6c8ad280
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_get.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshots_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_snapshots.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ snapshot_name="snapshot1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshots_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_list_by_elastic_volume.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_list_by_elastic_volume.py
new file mode 100644
index 000000000000..48459609a608
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_list_by_elastic_volume.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_snapshots_list_by_elastic_volume.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_snapshots.list_by_elastic_volume(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticSnapshots_ListByElasticVolume.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_create_or_update.py
new file mode 100644
index 000000000000..b05a9b73ae9b
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_create_or_update.py
@@ -0,0 +1,75 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_volumes_create_or_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_volumes.begin_create_or_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ body={
+ "location": "eastus",
+ "properties": {
+ "dataProtection": {
+ "backup": {
+ "elasticBackupPolicyResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/elasticAccounts/account1/elasticBackupPolicies/elasticBackupPolicy1",
+ "elasticBackupVaultResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/elasticAccounts/account1/elasticBackupVaults/elasticBackupVault1",
+ "policyEnforcement": "Enforced",
+ },
+ "snapshot": {
+ "snapshotPolicyResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/elasticAccounts/account1/elasticSnapshotPolicies/policy1"
+ },
+ },
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": ["0.0.0.0/0"],
+ "nfsv3": "Enabled",
+ "nfsv4": "Disabled",
+ "rootAccess": "Disabled",
+ "ruleIndex": 1,
+ "unixAccessRule": "ReadOnly",
+ }
+ ]
+ },
+ "filePath": "my-unique-file-path",
+ "protocolTypes": ["NFSv3"],
+ "size": 107374182400,
+ },
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticVolumes_CreateOrUpdate.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_delete.py
new file mode 100644
index 000000000000..127b16e61094
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_delete.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_volumes_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ client.elastic_volumes.begin_delete(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ ).result()
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticVolumes_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_get.py
new file mode 100644
index 000000000000..0e251e462367
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_get.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_volumes_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_volumes.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticVolumes_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_list_by_elastic_pool.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_list_by_elastic_pool.py
new file mode 100644
index 000000000000..ae039da45c34
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_list_by_elastic_pool.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_volumes_list_by_elastic_pool.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_volumes.list_by_elastic_pool(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticVolumes_ListByElasticPool.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_revert.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_revert.py
new file mode 100644
index 000000000000..c08d4106b8e4
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_revert.py
@@ -0,0 +1,48 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_volumes_revert.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_volumes.begin_revert(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ body={
+ "snapshotResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/elasticAccounts/account1/elasticCapacityPools/pool1/elasticVolumes/volume1/elasticSnapshots/snapshot1"
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticVolumes_Revert.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_update.py
new file mode 100644
index 000000000000..65447cdbc320
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_update.py
@@ -0,0 +1,66 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python elastic_volumes_update.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.elastic_volumes.begin_update(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ body={
+ "properties": {
+ "dataProtection": {
+ "snapshot": {
+ "snapshotPolicyResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/elasticAccounts/account1/elasticSnapshotPolicies/policy1"
+ }
+ },
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": ["0.0.0.0/0"],
+ "nfsv3": "Enabled",
+ "nfsv4": "Disabled",
+ "rootAccess": "Disabled",
+ "ruleIndex": 1,
+ "unixAccessRule": "ReadOnly",
+ }
+ ]
+ },
+ }
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/ElasticVolumes_Update.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/group_id_list_for_ldap_user.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/group_id_list_for_ldap_user.py
index 6079ddd36123..09244cbadfb7 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/group_id_list_for_ldap_user.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/group_id_list_for_ldap_user.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/GroupIdListForLDAPUser.json
+# x-ms-original-file: 2026-05-15-preview/GroupIdListForLDAPUser.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_account_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_account_get.py
index 940b3412430b..b0dd8b23a76b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_account_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_account_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/NetAppResourceQuotaLimitsAccount_Get.json
+# x-ms-original-file: 2026-05-15-preview/NetAppResourceQuotaLimitsAccount_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_account_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_account_list.py
index 8c0aede9fdc1..8ffe553b008f 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_account_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_account_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/NetAppResourceQuotaLimitsAccount_List.json
+# x-ms-original-file: 2026-05-15-preview/NetAppResourceQuotaLimitsAccount_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_get.py
index 27d5686f5aff..fc6047fb0d42 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_get.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/NetAppResourceQuotaLimits_Get.json
+# x-ms-original-file: 2026-05-15-preview/NetAppResourceQuotaLimits_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_list.py
index afa2fc2e4700..a19b9de5afc1 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/net_app_resource_quota_limits_list.py
@@ -37,6 +37,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/NetAppResourceQuotaLimits_List.json
+# x-ms-original-file: 2026-05-15-preview/NetAppResourceQuotaLimits_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/network_sibling_set_query.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/network_sibling_set_query.py
index b4cb743e93e9..385bc5fbaaa9 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/network_sibling_set_query.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/network_sibling_set_query.py
@@ -35,12 +35,12 @@ def main():
location="eastus",
body={
"networkSiblingSetId": "9760acf5-4638-11e7-9bdb-020073ca3333",
- "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/testSubnet",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/testSubnet",
},
)
print(response)
-# x-ms-original-file: 2026-05-01/NetworkSiblingSet_Query.json
+# x-ms-original-file: 2026-05-15-preview/NetworkSiblingSet_Query.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/network_sibling_set_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/network_sibling_set_update.py
index 35ddc158f115..41b3dca9cce2 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/network_sibling_set_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/network_sibling_set_update.py
@@ -37,12 +37,12 @@ def main():
"networkFeatures": "Standard",
"networkSiblingSetId": "9760acf5-4638-11e7-9bdb-020073ca3333",
"networkSiblingSetStateId": "12345_44420.8001578125",
- "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/testSubnet",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/testSubnet",
},
).result()
print(response)
-# x-ms-original-file: 2026-05-01/NetworkSiblingSet_Update.json
+# x-ms-original-file: 2026-05-15-preview/NetworkSiblingSet_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/operation_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/operation_list.py
index 01c5d9724d16..1f58d8824b1d 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/operation_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/operation_list.py
@@ -35,6 +35,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/OperationList.json
+# x-ms-original-file: 2026-05-15-preview/OperationList.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_create_or_update.py
index 3a928e584c15..72d686c5f578 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_create_or_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_create_or_update.py
@@ -42,6 +42,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Pools_CreateOrUpdate.json
+# x-ms-original-file: 2026-05-15-preview/Pools_CreateOrUpdate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_create_or_update_custom_throughput.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_create_or_update_custom_throughput.py
index 5e1f1168ca01..4313f342a2f6 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_create_or_update_custom_throughput.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_create_or_update_custom_throughput.py
@@ -47,6 +47,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Pools_CreateOrUpdate_CustomThroughput.json
+# x-ms-original-file: 2026-05-15-preview/Pools_CreateOrUpdate_CustomThroughput.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_delete.py
index fcd4237d5827..1058391837e2 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Pools_Delete.json
+# x-ms-original-file: 2026-05-15-preview/Pools_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_get.py
index 4f3c9a7765d2..6ebd160a14b2 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Pools_Get.json
+# x-ms-original-file: 2026-05-15-preview/Pools_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_get_custom_throughput.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_get_custom_throughput.py
index a33a2fdd2d3b..dfb8fd72078c 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_get_custom_throughput.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_get_custom_throughput.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Pools_Get_CustomThroughput.json
+# x-ms-original-file: 2026-05-15-preview/Pools_Get_CustomThroughput.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_list.py
index e0c375898071..6947433ec21c 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Pools_List.json
+# x-ms-original-file: 2026-05-15-preview/Pools_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_update.py
index 0f47d8e5c80f..fec8387629fd 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_update.py
@@ -46,6 +46,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Pools_Update.json
+# x-ms-original-file: 2026-05-15-preview/Pools_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_update_custom_throughput.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_update_custom_throughput.py
index 2e9848342810..640264fa4a3e 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_update_custom_throughput.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/pools_update_custom_throughput.py
@@ -46,6 +46,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Pools_Update_CustomThroughput.json
+# x-ms-original-file: 2026-05-15-preview/Pools_Update_CustomThroughput.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_clear_suspects.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_clear_suspects.py
index 4e70e7507fea..c2b1d1d6db19 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_clear_suspects.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_clear_suspects.py
@@ -40,6 +40,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/RansomwareReports_ClearSuspects.json
+# x-ms-original-file: 2026-05-15-preview/RansomwareReports_ClearSuspects.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_get.py
index 918f5f24a5ca..b3c45fcb1439 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_get.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/RansomwareReports_Get.json
+# x-ms-original-file: 2026-05-15-preview/RansomwareReports_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_list.py
index 1f9b2cb119ff..7d516ca41fd6 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/ransomware_reports_list.py
@@ -40,6 +40,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/RansomwareReports_List.json
+# x-ms-original-file: 2026-05-15-preview/RansomwareReports_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/region_info.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/region_info.py
index 2e7911e3e1dd..aff40000ae44 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/region_info.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/region_info.py
@@ -36,6 +36,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/RegionInfo.json
+# x-ms-original-file: 2026-05-15-preview/RegionInfo.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/region_infos_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/region_infos_get.py
index 377c4ed70df2..211ffefcd5b1 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/region_infos_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/region_infos_get.py
@@ -36,6 +36,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/RegionInfos_Get.json
+# x-ms-original-file: 2026-05-15-preview/RegionInfos_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/region_infos_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/region_infos_list.py
index 0b1d8be69853..bbd8268f98c2 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/region_infos_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/region_infos_list.py
@@ -37,6 +37,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/RegionInfos_List.json
+# x-ms-original-file: 2026-05-15-preview/RegionInfos_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_create.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_create.py
index 63d5cefb6808..599be4b9ce97 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_create.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_create.py
@@ -48,6 +48,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/SnapshotPolicies_Create.json
+# x-ms-original-file: 2026-05-15-preview/SnapshotPolicies_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_delete.py
index b528eb455104..cdeb9cde70cf 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/SnapshotPolicies_Delete.json
+# x-ms-original-file: 2026-05-15-preview/SnapshotPolicies_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_get.py
index ad20b50d9055..e7394cdd75c0 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/SnapshotPolicies_Get.json
+# x-ms-original-file: 2026-05-15-preview/SnapshotPolicies_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_list.py
index 320916fc705d..ab65edfc8ff7 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/SnapshotPolicies_List.json
+# x-ms-original-file: 2026-05-15-preview/SnapshotPolicies_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_list_volumes.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_list_volumes.py
index 75d6bf1220d2..ffb4f7c6e108 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_list_volumes.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_list_volumes.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/SnapshotPolicies_ListVolumes.json
+# x-ms-original-file: 2026-05-15-preview/SnapshotPolicies_ListVolumes.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_update.py
index 38024c271df2..b263afb501dc 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshot_policies_update.py
@@ -48,6 +48,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/SnapshotPolicies_Update.json
+# x-ms-original-file: 2026-05-15-preview/SnapshotPolicies_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_create.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_create.py
index cd51b2326a7c..11a59cecaf2f 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_create.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_create.py
@@ -41,6 +41,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Snapshots_Create.json
+# x-ms-original-file: 2026-05-15-preview/Snapshots_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_delete.py
index 9884648b7c4d..5306cbf2a393 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_delete.py
@@ -39,6 +39,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Snapshots_Delete.json
+# x-ms-original-file: 2026-05-15-preview/Snapshots_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_get.py
index 0d5e3779f556..96679d5f3301 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_get.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Snapshots_Get.json
+# x-ms-original-file: 2026-05-15-preview/Snapshots_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_list.py
index 20fabf6a123c..0a70f7a27b42 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_list.py
@@ -40,6 +40,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Snapshots_List.json
+# x-ms-original-file: 2026-05-15-preview/Snapshots_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_single_file_restore.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_single_file_restore.py
index 5de1d49075df..8ac508c9fb5b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_single_file_restore.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_single_file_restore.py
@@ -40,6 +40,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Snapshots_SingleFileRestore.json
+# x-ms-original-file: 2026-05-15-preview/Snapshots_SingleFileRestore.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_update.py
index ffe4b48cf353..6418d13d2136 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/snapshots_update.py
@@ -41,6 +41,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Snapshots_Update.json
+# x-ms-original-file: 2026-05-15-preview/Snapshots_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_create.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_create.py
index 3c7df79ff1fe..43010d52b713 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_create.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_create.py
@@ -41,6 +41,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Subvolumes_Create.json
+# x-ms-original-file: 2026-05-15-preview/Subvolumes_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_delete.py
index ff107dfe376e..1e523b6be0b6 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_delete.py
@@ -39,6 +39,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Subvolumes_Delete.json
+# x-ms-original-file: 2026-05-15-preview/Subvolumes_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_get.py
index 28beff2e6fb3..cb38bcbe6fba 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_get.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Subvolumes_Get.json
+# x-ms-original-file: 2026-05-15-preview/Subvolumes_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_list.py
index 02eba5c2999e..c160d6d11bda 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_list.py
@@ -40,6 +40,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Subvolumes_List.json
+# x-ms-original-file: 2026-05-15-preview/Subvolumes_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_metadata.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_metadata.py
index e19ac8c52634..20303ec995c7 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_metadata.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_metadata.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Subvolumes_Metadata.json
+# x-ms-original-file: 2026-05-15-preview/Subvolumes_Metadata.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_update.py
index 4cbf0e4967e3..f56c655ba85f 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/subvolumes_update.py
@@ -41,6 +41,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Subvolumes_Update.json
+# x-ms-original-file: 2026-05-15-preview/Subvolumes_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/usages_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/usages_get.py
index ad975144ec9d..fa74be7df2fb 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/usages_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/usages_get.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Usages_Get.json
+# x-ms-original-file: 2026-05-15-preview/Usages_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/usages_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/usages_list.py
index 8bce20bbdaaf..9b2b6f7f1470 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/usages_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/usages_list.py
@@ -37,6 +37,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Usages_List.json
+# x-ms-original-file: 2026-05-15-preview/Usages_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_custom.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_custom.py
new file mode 100644
index 000000000000..8ada3ee8c1b0
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_custom.py
@@ -0,0 +1,464 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python volume_groups_create_custom.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.volume_groups.begin_create(
+ resource_group_name="myRG",
+ account_name="account1",
+ volume_group_name="group1",
+ body={
+ "location": "westus",
+ "properties": {
+ "groupMetaData": {
+ "applicationIdentifier": "CU2",
+ "applicationType": "CUSTOM",
+ "groupDescription": "Volume group",
+ },
+ "volumes": [
+ {
+ "name": "test-cus-data1",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data1",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data1",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data2",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data2",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data2",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data3",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data3",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data3",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data4",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data4",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data4",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data5",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data5",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data5",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data6",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data6",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data6",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data7",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data7",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data7",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data8",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data8",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data8",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data9",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data9",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data9",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data10",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data10",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data10",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data11",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data11",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data11",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data12",
+ "properties": {
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data12",
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": "0.0.0.0/0",
+ "cifs": False,
+ "hasRootAccess": True,
+ "kerberos5ReadOnly": False,
+ "kerberos5ReadWrite": False,
+ "kerberos5iReadOnly": False,
+ "kerberos5iReadWrite": False,
+ "kerberos5pReadOnly": False,
+ "kerberos5pReadWrite": False,
+ "nfsv3": False,
+ "nfsv41": True,
+ "ruleIndex": 1,
+ "unixReadOnly": True,
+ "unixReadWrite": True,
+ }
+ ]
+ },
+ "protocolTypes": ["NFSv4.1"],
+ "serviceLevel": "Premium",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data12",
+ },
+ "zones": ["1"],
+ },
+ ],
+ },
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Create_Custom.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_custom_smb.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_custom_smb.py
new file mode 100644
index 000000000000..71008fb8c27b
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_custom_smb.py
@@ -0,0 +1,284 @@
+# pylint: disable=line-too-long,useless-suppression
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python volume_groups_create_custom_smb.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.volume_groups.begin_create(
+ resource_group_name="myRG",
+ account_name="account1",
+ volume_group_name="group1",
+ body={
+ "location": "westus",
+ "properties": {
+ "groupMetaData": {
+ "applicationIdentifier": "CU2",
+ "applicationType": "CUSTOM",
+ "groupDescription": "Volume group",
+ },
+ "volumes": [
+ {
+ "name": "test-cus-data1",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data1",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data1",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data2",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data2",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data2",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data3",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data3",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data3",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data4",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data4",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data4",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data5",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data5",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data5",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data6",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data6",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data6",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data7",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data7",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data7",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data8",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data8",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data8",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data9",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data9",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data9",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data10",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data10",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data10",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data11",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data11",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data11",
+ },
+ "zones": ["1"],
+ },
+ {
+ "name": "test-cus-data12",
+ "properties": {
+ "avsDataStore": "Disabled",
+ "capacityPoolResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1",
+ "creationToken": "test-cus-data12",
+ "protocolTypes": ["CIFS"],
+ "serviceLevel": "Premium",
+ "smbAccessBasedEnumeration": "Disabled",
+ "smbContinuouslyAvailable": False,
+ "smbEncryption": False,
+ "smbNonBrowsable": "Disabled",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "throughputMibps": 10,
+ "usageThreshold": 107374182400,
+ "volumeSpecName": "cus-data12",
+ },
+ "zones": ["1"],
+ },
+ ],
+ },
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Create_Custom_SMB.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_oracle.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_oracle.py
index 48ee37f34ea0..04d3c36ef488 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_oracle.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_oracle.py
@@ -459,6 +459,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/VolumeGroups_Create_Oracle.json
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Create_Oracle.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_sap_hana.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_sap_hana.py
index 3e8e7797ca5e..e0317d2b41c3 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_sap_hana.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_create_sap_hana.py
@@ -221,6 +221,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/VolumeGroups_Create_SapHana.json
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Create_SapHana.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_delete.py
index e7d162f18dd2..5d5dde2097dd 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/VolumeGroups_Delete.json
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_custom.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_custom.py
new file mode 100644
index 000000000000..77fc90668c7f
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_custom.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python volume_groups_get_custom.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.volume_groups.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ volume_group_name="group1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Get_Custom.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_custom_smb.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_custom_smb.py
new file mode 100644
index 000000000000..646ff92d7842
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_custom_smb.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python volume_groups_get_custom_smb.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.volume_groups.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ volume_group_name="group1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Get_Custom_SMB.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_oracle.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_oracle.py
index fcd0d4a510e3..d2df765800d4 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_oracle.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_oracle.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/VolumeGroups_Get_Oracle.json
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Get_Oracle.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_sap_hana.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_sap_hana.py
index a06c9e02a0a0..e5f0fd9a86ce 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_sap_hana.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_get_sap_hana.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/VolumeGroups_Get_SapHana.json
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_Get_SapHana.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_custom.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_custom.py
new file mode 100644
index 000000000000..f3993bd0d0cb
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_custom.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python volume_groups_list_custom.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.volume_groups.list_by_net_app_account(
+ resource_group_name="myRG",
+ account_name="account1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_List_Custom.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_oracle.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_oracle.py
index 6303a2bdd97e..895a30c3dd68 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_oracle.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_oracle.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/VolumeGroups_List_Oracle.json
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_List_Oracle.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_sap_hana.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_sap_hana.py
index 7033f001b9c1..b4cf0545fa07 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_sap_hana.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_groups_list_sap_hana.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/VolumeGroups_List_SapHana.json
+# x-ms-original-file: 2026-05-15-preview/VolumeGroups_List_SapHana.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_create.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_create.py
index 83e39046759f..fee70401ee1b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_create.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_create.py
@@ -44,6 +44,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/VolumeQuotaRules_Create.json
+# x-ms-original-file: 2026-05-15-preview/VolumeQuotaRules_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_delete.py
index 5e29fa4983dc..0ee18c9539be 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_delete.py
@@ -39,6 +39,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/VolumeQuotaRules_Delete.json
+# x-ms-original-file: 2026-05-15-preview/VolumeQuotaRules_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_get.py
index 998e7f2a2597..16dbcffd9d41 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_get.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/VolumeQuotaRules_Get.json
+# x-ms-original-file: 2026-05-15-preview/VolumeQuotaRules_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_list.py
index 8a2ca508e5a5..c14b75a4a623 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_list.py
@@ -40,6 +40,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/VolumeQuotaRules_List.json
+# x-ms-original-file: 2026-05-15-preview/VolumeQuotaRules_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_update.py
index 8c7ca8261296..6808cf2cac84 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volume_quota_rules_update.py
@@ -41,6 +41,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/VolumeQuotaRules_Update.json
+# x-ms-original-file: 2026-05-15-preview/VolumeQuotaRules_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_authorize_external_replication.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_authorize_external_replication.py
index bfdc095875e7..182dec4bca6d 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_authorize_external_replication.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_authorize_external_replication.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_AuthorizeExternalReplication.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_AuthorizeExternalReplication.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_authorize_replication.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_authorize_replication.py
index 9512f5d6e699..e5c0d6161298 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_authorize_replication.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_authorize_replication.py
@@ -42,6 +42,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_AuthorizeReplication.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_AuthorizeReplication.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_break_file_locks.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_break_file_locks.py
index 1de0041903f2..eec75c070357 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_break_file_locks.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_break_file_locks.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_BreakFileLocks.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_BreakFileLocks.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_break_replication.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_break_replication.py
index ea142d575019..4ac707223ff0 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_break_replication.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_break_replication.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_BreakReplication.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_BreakReplication.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_create_or_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_create_or_update.py
index 52dea7287864..8ec8eef5e8db 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_create_or_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_create_or_update.py
@@ -41,7 +41,7 @@ def main():
"properties": {
"creationToken": "my-unique-file-path",
"serviceLevel": "Premium",
- "subnetId": "/subscriptions/9760acf5-4638-11e7-9bdb-020073ca7778/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
+ "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRP/providers/Microsoft.Network/virtualNetworks/testvnet3/subnets/testsubnet3",
"usageThreshold": 107374182400,
},
},
@@ -49,6 +49,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_CreateOrUpdate.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_CreateOrUpdate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_delete.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_delete.py
index a53fd99d5c10..39f9f3fc3bd7 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_delete.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_delete.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_Delete.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_delete_replication.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_delete_replication.py
index 2c7d0ef7c807..7b77df4faacb 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_delete_replication.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_delete_replication.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_DeleteReplication.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_DeleteReplication.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_extra_large_volumes_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_extra_large_volumes_get.py
new file mode 100644
index 000000000000..5d0fc2ec112e
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_extra_large_volumes_get.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python volumes_extra_large_volumes_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.volumes.get(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ volume_name="volume1",
+ )
+ print(response)
+
+
+# x-ms-original-file: 2026-05-15-preview/Volumes_ExtraLargeVolumes_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_extra_large_volumes_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_extra_large_volumes_list.py
new file mode 100644
index 000000000000..8cf8b8dc3aa1
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_extra_large_volumes_list.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.netapp import NetAppManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-netapp
+# USAGE
+ python volumes_extra_large_volumes_list.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = NetAppManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="SUBSCRIPTION_ID",
+ )
+
+ response = client.volumes.list(
+ resource_group_name="myRG",
+ account_name="account1",
+ pool_name="pool1",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: 2026-05-15-preview/Volumes_ExtraLargeVolumes_List.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_finalize_external_replication.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_finalize_external_replication.py
index 538971074bde..a858d9247bbe 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_finalize_external_replication.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_finalize_external_replication.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_FinalizeExternalReplication.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_FinalizeExternalReplication.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_finalize_relocation.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_finalize_relocation.py
index 82042cc17443..74eb462ba448 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_finalize_relocation.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_finalize_relocation.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_FinalizeRelocation.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_FinalizeRelocation.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_get.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_get.py
index bdbb94d68b65..56a059f9d4fa 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_get.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_get.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_Get.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_latest_backup_status.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_latest_backup_status.py
index e38891d62f24..355348fd41b6 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_latest_backup_status.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_latest_backup_status.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_LatestBackupStatus.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_LatestBackupStatus.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_latest_restore_status.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_latest_restore_status.py
index 1c570646bcb6..7ded077a18bc 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_latest_restore_status.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_latest_restore_status.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_LatestRestoreStatus.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_LatestRestoreStatus.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list.py
index 97b0987e8294..9d0bcabade5a 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list.py
@@ -39,6 +39,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Volumes_List.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list_quota_report.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list_quota_report.py
index 9509beb958fe..0e98f9432d59 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list_quota_report.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list_quota_report.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_ListQuotaReport.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_ListQuotaReport.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list_replications.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list_replications.py
index e141defc67af..7d824356558e 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list_replications.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_list_replications.py
@@ -40,6 +40,6 @@ def main():
print(item)
-# x-ms-original-file: 2026-05-01/Volumes_ListReplications.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_ListReplications.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_peer_external_cluster.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_peer_external_cluster.py
index 963339b5240c..29eeb11c90f1 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_peer_external_cluster.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_peer_external_cluster.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_PeerExternalCluster.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_PeerExternalCluster.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_perform_replication_transfer.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_perform_replication_transfer.py
index ecc87b4d939c..93fae9db1985 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_perform_replication_transfer.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_perform_replication_transfer.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_PerformReplicationTransfer.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_PerformReplicationTransfer.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_pool_change.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_pool_change.py
index 92c472cc7ab5..19fe6db79fa8 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_pool_change.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_pool_change.py
@@ -42,6 +42,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_PoolChange.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_PoolChange.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_populate_availability_zones.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_populate_availability_zones.py
index 9e07aa3e0e25..e76becf93ae4 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_populate_availability_zones.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_populate_availability_zones.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_PopulateAvailabilityZones.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_PopulateAvailabilityZones.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_re_initialize_replication.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_re_initialize_replication.py
index c187a3895051..504edf836efb 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_re_initialize_replication.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_re_initialize_replication.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_ReInitializeReplication.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_ReInitializeReplication.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_reestablish_replication.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_reestablish_replication.py
index 9c65a6c13d6a..d313278255f8 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_reestablish_replication.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_reestablish_replication.py
@@ -42,6 +42,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_ReestablishReplication.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_ReestablishReplication.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_relocate.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_relocate.py
index b2d2e1c55ca7..87348e66deb9 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_relocate.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_relocate.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_Relocate.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_Relocate.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_replication_status.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_replication_status.py
index d139950cd01a..aed1a506b3c6 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_replication_status.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_replication_status.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_ReplicationStatus.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_ReplicationStatus.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_reset_cifs_password.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_reset_cifs_password.py
index 08df16012249..2cf5b2932ded 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_reset_cifs_password.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_reset_cifs_password.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_ResetCifsPassword.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_ResetCifsPassword.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_resync_replication.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_resync_replication.py
index 283d34f2d7be..5f392b9a48a4 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_resync_replication.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_resync_replication.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_ResyncReplication.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_ResyncReplication.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_revert.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_revert.py
index e9555011dc88..50fc54a16234 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_revert.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_revert.py
@@ -42,6 +42,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_Revert.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_Revert.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_revert_relocation.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_revert_relocation.py
index 6f2bde2894a2..17a9dc46fe22 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_revert_relocation.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_revert_relocation.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: 2026-05-01/Volumes_RevertRelocation.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_RevertRelocation.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_split_clone.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_split_clone.py
index e98c0056977b..be259940bdd7 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_split_clone.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_split_clone.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_SplitClone.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_SplitClone.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_update.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_update.py
index 9d7054b75559..58449ddb2cb9 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_update.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/volumes_update.py
@@ -89,6 +89,6 @@ def main():
print(response)
-# x-ms-original-file: 2026-05-01/Volumes_Update.json
+# x-ms-original-file: 2026-05-15-preview/Volumes_Update.json
if __name__ == "__main__":
main()
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_accounts_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_accounts_operations.py
index cfc07091c547..a06bfdbb75fd 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_accounts_operations.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_accounts_operations.py
@@ -86,6 +86,35 @@ def test_accounts_begin_create_or_update(self, resource_group):
"status": "str",
},
},
+ "entraIdConfig": {
+ "applicationId": "str",
+ "domain": "str",
+ "serverNamePrefix": "str",
+ "entraIdAkvConfig": {
+ "azureKeyVaultUri": "str",
+ "certificateName": "str",
+ "userAssignedIdentity": "str",
+ },
+ },
+ "ldapConfiguration": {
+ "bindAuthenticationLevel": "str",
+ "bindDN": "str",
+ "bindPasswordAkvConfig": {
+ "azureKeyVaultUri": "str",
+ "secretName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "certificateCNHost": "str",
+ "dnsServers": ["str"],
+ "domain": "str",
+ "groupDN": "str",
+ "ldapOverTLS": bool,
+ "ldapPort": 0,
+ "ldapServers": ["str"],
+ "netGroupDN": "str",
+ "serverCACertificate": "str",
+ "userDN": "str",
+ },
"multiAdStatus": "str",
"nfsV4IDDomain": "str",
"provisioningState": "str",
@@ -113,15 +142,12 @@ def test_accounts_begin_update(self, resource_group):
resource_group_name=resource_group.name,
account_name="str",
body={
- "id": "str",
"identity": {
"type": "str",
"principalId": "str",
"tenantId": "str",
"userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
},
- "location": "str",
- "name": "str",
"properties": {
"activeDirectories": [
{
@@ -150,7 +176,6 @@ def test_accounts_begin_update(self, resource_group):
"username": "str",
}
],
- "disableShowmount": bool,
"encryption": {
"identity": {"federatedClientId": "str", "principalId": "str", "userAssignedIdentity": "str"},
"keySource": "str",
@@ -162,12 +187,38 @@ def test_accounts_begin_update(self, resource_group):
"status": "str",
},
},
- "multiAdStatus": "str",
+ "entraIdConfig": {
+ "applicationId": "str",
+ "domain": "str",
+ "entraIdAkvConfig": {
+ "azureKeyVaultUri": "str",
+ "certificateName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "serverNamePrefix": "str",
+ },
+ "ldapConfiguration": {
+ "bindAuthenticationLevel": "str",
+ "bindDN": "str",
+ "bindPasswordAkvConfig": {
+ "azureKeyVaultUri": "str",
+ "secretName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "certificateCNHost": "str",
+ "dnsServers": ["str"],
+ "domain": "str",
+ "groupDN": "str",
+ "ldapOverTLS": bool,
+ "ldapPort": 0,
+ "ldapServers": ["str"],
+ "netGroupDN": "str",
+ "serverCACertificate": "str",
+ "userDN": "str",
+ },
"nfsV4IDDomain": "str",
- "provisioningState": "str",
},
"tags": {"str": "str"},
- "type": "str",
},
).result() # call '.result()' to poll until service return final result
@@ -246,3 +297,14 @@ def test_accounts_begin_change_key_vault(self, resource_group):
# please add some check logic here by yourself
# ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_accounts_begin_refresh_ldap_bind_password(self, resource_group):
+ response = self.client.accounts.begin_refresh_ldap_bind_password(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_accounts_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_accounts_operations_async.py
index 2eeec0aab482..3461d267522b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_accounts_operations_async.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_accounts_operations_async.py
@@ -92,6 +92,35 @@ async def test_accounts_begin_create_or_update(self, resource_group):
"status": "str",
},
},
+ "entraIdConfig": {
+ "applicationId": "str",
+ "domain": "str",
+ "serverNamePrefix": "str",
+ "entraIdAkvConfig": {
+ "azureKeyVaultUri": "str",
+ "certificateName": "str",
+ "userAssignedIdentity": "str",
+ },
+ },
+ "ldapConfiguration": {
+ "bindAuthenticationLevel": "str",
+ "bindDN": "str",
+ "bindPasswordAkvConfig": {
+ "azureKeyVaultUri": "str",
+ "secretName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "certificateCNHost": "str",
+ "dnsServers": ["str"],
+ "domain": "str",
+ "groupDN": "str",
+ "ldapOverTLS": bool,
+ "ldapPort": 0,
+ "ldapServers": ["str"],
+ "netGroupDN": "str",
+ "serverCACertificate": "str",
+ "userDN": "str",
+ },
"multiAdStatus": "str",
"nfsV4IDDomain": "str",
"provisioningState": "str",
@@ -121,15 +150,12 @@ async def test_accounts_begin_update(self, resource_group):
resource_group_name=resource_group.name,
account_name="str",
body={
- "id": "str",
"identity": {
"type": "str",
"principalId": "str",
"tenantId": "str",
"userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
},
- "location": "str",
- "name": "str",
"properties": {
"activeDirectories": [
{
@@ -158,7 +184,6 @@ async def test_accounts_begin_update(self, resource_group):
"username": "str",
}
],
- "disableShowmount": bool,
"encryption": {
"identity": {
"federatedClientId": "str",
@@ -174,12 +199,38 @@ async def test_accounts_begin_update(self, resource_group):
"status": "str",
},
},
- "multiAdStatus": "str",
+ "entraIdConfig": {
+ "applicationId": "str",
+ "domain": "str",
+ "entraIdAkvConfig": {
+ "azureKeyVaultUri": "str",
+ "certificateName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "serverNamePrefix": "str",
+ },
+ "ldapConfiguration": {
+ "bindAuthenticationLevel": "str",
+ "bindDN": "str",
+ "bindPasswordAkvConfig": {
+ "azureKeyVaultUri": "str",
+ "secretName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "certificateCNHost": "str",
+ "dnsServers": ["str"],
+ "domain": "str",
+ "groupDN": "str",
+ "ldapOverTLS": bool,
+ "ldapPort": 0,
+ "ldapServers": ["str"],
+ "netGroupDN": "str",
+ "serverCACertificate": "str",
+ "userDN": "str",
+ },
"nfsV4IDDomain": "str",
- "provisioningState": "str",
},
"tags": {"str": "str"},
- "type": "str",
},
)
).result() # call '.result()' to poll until service return final result
@@ -269,3 +320,16 @@ async def test_accounts_begin_change_key_vault(self, resource_group):
# please add some check logic here by yourself
# ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_accounts_begin_refresh_ldap_bind_password(self, resource_group):
+ response = await (
+ await self.client.accounts.begin_refresh_ldap_bind_password(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations.py
new file mode 100644
index 000000000000..97f9bd69acea
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations.py
@@ -0,0 +1,144 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementActiveDirectoryConfigsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_active_directory_configs_get(self, resource_group):
+ response = self.client.active_directory_configs.get(
+ resource_group_name=resource_group.name,
+ active_directory_config_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_active_directory_configs_begin_create_or_update(self, resource_group):
+ response = self.client.active_directory_configs.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ active_directory_config_name="str",
+ body={
+ "location": "str",
+ "etag": "str",
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "name": "str",
+ "properties": {
+ "domain": "str",
+ "secretPassword": {
+ "identity": {"principalId": "str", "userAssignedIdentity": "str"},
+ "keyVaultProperties": {"keyVaultUri": "str", "secretName": "str"},
+ },
+ "site": "str",
+ "activeDirectoryStatus": "str",
+ "administrators": ["str"],
+ "backupOperators": ["str"],
+ "dns": ["str"],
+ "organizationalUnit": "str",
+ "provisioningState": "str",
+ "securityOperators": ["str"],
+ "smbServerName": "str",
+ "userName": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_active_directory_configs_begin_update(self, resource_group):
+ response = self.client.active_directory_configs.begin_update(
+ resource_group_name=resource_group.name,
+ active_directory_config_name="str",
+ body={
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "properties": {
+ "administrators": ["str"],
+ "backupOperators": ["str"],
+ "dns": ["str"],
+ "domain": "str",
+ "organizationalUnit": "str",
+ "secretPassword": {
+ "identity": {"principalId": "str", "userAssignedIdentity": "str"},
+ "keyVaultProperties": {"keyVaultUri": "str", "secretName": "str"},
+ },
+ "securityOperators": ["str"],
+ "site": "str",
+ "smbServerName": "str",
+ "userName": "str",
+ },
+ "tags": {"str": "str"},
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_active_directory_configs_begin_delete(self, resource_group):
+ response = self.client.active_directory_configs.begin_delete(
+ resource_group_name=resource_group.name,
+ active_directory_config_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_active_directory_configs_list_by_resource_group(self, resource_group):
+ response = self.client.active_directory_configs.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_active_directory_configs_list_by_subscription(self, resource_group):
+ response = self.client.active_directory_configs.list_by_subscription()
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations_async.py
new file mode 100644
index 000000000000..f51c4b09ae4c
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations_async.py
@@ -0,0 +1,151 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementActiveDirectoryConfigsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_active_directory_configs_get(self, resource_group):
+ response = await self.client.active_directory_configs.get(
+ resource_group_name=resource_group.name,
+ active_directory_config_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_active_directory_configs_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.active_directory_configs.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ active_directory_config_name="str",
+ body={
+ "location": "str",
+ "etag": "str",
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "name": "str",
+ "properties": {
+ "domain": "str",
+ "secretPassword": {
+ "identity": {"principalId": "str", "userAssignedIdentity": "str"},
+ "keyVaultProperties": {"keyVaultUri": "str", "secretName": "str"},
+ },
+ "site": "str",
+ "activeDirectoryStatus": "str",
+ "administrators": ["str"],
+ "backupOperators": ["str"],
+ "dns": ["str"],
+ "organizationalUnit": "str",
+ "provisioningState": "str",
+ "securityOperators": ["str"],
+ "smbServerName": "str",
+ "userName": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_active_directory_configs_begin_update(self, resource_group):
+ response = await (
+ await self.client.active_directory_configs.begin_update(
+ resource_group_name=resource_group.name,
+ active_directory_config_name="str",
+ body={
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "properties": {
+ "administrators": ["str"],
+ "backupOperators": ["str"],
+ "dns": ["str"],
+ "domain": "str",
+ "organizationalUnit": "str",
+ "secretPassword": {
+ "identity": {"principalId": "str", "userAssignedIdentity": "str"},
+ "keyVaultProperties": {"keyVaultUri": "str", "secretName": "str"},
+ },
+ "securityOperators": ["str"],
+ "site": "str",
+ "smbServerName": "str",
+ "userName": "str",
+ },
+ "tags": {"str": "str"},
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_active_directory_configs_begin_delete(self, resource_group):
+ response = await (
+ await self.client.active_directory_configs.begin_delete(
+ resource_group_name=resource_group.name,
+ active_directory_config_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_active_directory_configs_list_by_resource_group(self, resource_group):
+ response = self.client.active_directory_configs.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_active_directory_configs_list_by_subscription(self, resource_group):
+ response = self.client.active_directory_configs.list_by_subscription()
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_buckets_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_buckets_operations.py
index 06d0980b940f..b53eb57ce51b 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_buckets_operations.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_buckets_operations.py
@@ -46,8 +46,16 @@ def test_buckets_begin_create_or_update(self, resource_group):
"name": "str",
"properties": {
"akvDetails": {
- "certificateAkvDetails": {"certificateKeyVaultUri": "str", "certificateName": "str"},
- "credentialsAkvDetails": {"credentialsKeyVaultUri": "str", "secretName": "str"},
+ "certificateAkvDetails": {
+ "certificateKeyVaultUri": "str",
+ "certificateName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "credentialsAkvDetails": {
+ "credentialsKeyVaultUri": "str",
+ "secretName": "str",
+ "userAssignedIdentity": "str",
+ },
},
"fileSystemUser": {"cifsUser": {"username": "str"}, "nfsUser": {"groupId": 0, "userId": 0}},
"path": "str",
@@ -92,8 +100,16 @@ def test_buckets_begin_update(self, resource_group):
"name": "str",
"properties": {
"akvDetails": {
- "certificateAkvDetails": {"certificateKeyVaultUri": "str", "certificateName": "str"},
- "credentialsAkvDetails": {"credentialsKeyVaultUri": "str", "secretName": "str"},
+ "certificateAkvDetails": {
+ "certificateKeyVaultUri": "str",
+ "certificateName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "credentialsAkvDetails": {
+ "credentialsKeyVaultUri": "str",
+ "secretName": "str",
+ "userAssignedIdentity": "str",
+ },
},
"fileSystemUser": {"cifsUser": {"username": "str"}, "nfsUser": {"groupId": 0, "userId": 0}},
"permissions": "str",
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_buckets_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_buckets_operations_async.py
index a416510b68d9..b2b3488eae8a 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_buckets_operations_async.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_buckets_operations_async.py
@@ -48,8 +48,16 @@ async def test_buckets_begin_create_or_update(self, resource_group):
"name": "str",
"properties": {
"akvDetails": {
- "certificateAkvDetails": {"certificateKeyVaultUri": "str", "certificateName": "str"},
- "credentialsAkvDetails": {"credentialsKeyVaultUri": "str", "secretName": "str"},
+ "certificateAkvDetails": {
+ "certificateKeyVaultUri": "str",
+ "certificateName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "credentialsAkvDetails": {
+ "credentialsKeyVaultUri": "str",
+ "secretName": "str",
+ "userAssignedIdentity": "str",
+ },
},
"fileSystemUser": {"cifsUser": {"username": "str"}, "nfsUser": {"groupId": 0, "userId": 0}},
"path": "str",
@@ -96,8 +104,16 @@ async def test_buckets_begin_update(self, resource_group):
"name": "str",
"properties": {
"akvDetails": {
- "certificateAkvDetails": {"certificateKeyVaultUri": "str", "certificateName": "str"},
- "credentialsAkvDetails": {"credentialsKeyVaultUri": "str", "secretName": "str"},
+ "certificateAkvDetails": {
+ "certificateKeyVaultUri": "str",
+ "certificateName": "str",
+ "userAssignedIdentity": "str",
+ },
+ "credentialsAkvDetails": {
+ "credentialsKeyVaultUri": "str",
+ "secretName": "str",
+ "userAssignedIdentity": "str",
+ },
},
"fileSystemUser": {"cifsUser": {"username": "str"}, "nfsUser": {"groupId": 0, "userId": 0}},
"permissions": "str",
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations.py
new file mode 100644
index 000000000000..8c04a6f2050a
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations.py
@@ -0,0 +1,137 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticAccountsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_accounts_get(self, resource_group):
+ response = self.client.elastic_accounts.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_accounts_begin_create_or_update(self, resource_group):
+ response = self.client.elastic_accounts.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "name": "str",
+ "properties": {
+ "encryption": {
+ "identity": {"federatedClientId": "str", "principalId": "str", "userAssignedIdentity": "str"},
+ "keySource": "str",
+ "keyVaultProperties": {
+ "keyName": "str",
+ "keyVaultResourceId": "str",
+ "keyVaultUri": "str",
+ "status": "str",
+ },
+ },
+ "provisioningState": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_accounts_begin_update(self, resource_group):
+ response = self.client.elastic_accounts.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ body={
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "properties": {
+ "encryption": {
+ "identity": {"federatedClientId": "str", "principalId": "str", "userAssignedIdentity": "str"},
+ "keySource": "str",
+ "keyVaultProperties": {
+ "keyName": "str",
+ "keyVaultResourceId": "str",
+ "keyVaultUri": "str",
+ "status": "str",
+ },
+ }
+ },
+ "tags": {"str": "str"},
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_accounts_begin_delete(self, resource_group):
+ response = self.client.elastic_accounts.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_accounts_list_by_resource_group(self, resource_group):
+ response = self.client.elastic_accounts.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_accounts_list_by_subscription(self, resource_group):
+ response = self.client.elastic_accounts.list_by_subscription()
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations_async.py
new file mode 100644
index 000000000000..f70e3d724df8
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations_async.py
@@ -0,0 +1,152 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticAccountsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_accounts_get(self, resource_group):
+ response = await self.client.elastic_accounts.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_accounts_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.elastic_accounts.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "name": "str",
+ "properties": {
+ "encryption": {
+ "identity": {
+ "federatedClientId": "str",
+ "principalId": "str",
+ "userAssignedIdentity": "str",
+ },
+ "keySource": "str",
+ "keyVaultProperties": {
+ "keyName": "str",
+ "keyVaultResourceId": "str",
+ "keyVaultUri": "str",
+ "status": "str",
+ },
+ },
+ "provisioningState": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_accounts_begin_update(self, resource_group):
+ response = await (
+ await self.client.elastic_accounts.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ body={
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "properties": {
+ "encryption": {
+ "identity": {
+ "federatedClientId": "str",
+ "principalId": "str",
+ "userAssignedIdentity": "str",
+ },
+ "keySource": "str",
+ "keyVaultProperties": {
+ "keyName": "str",
+ "keyVaultResourceId": "str",
+ "keyVaultUri": "str",
+ "status": "str",
+ },
+ }
+ },
+ "tags": {"str": "str"},
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_accounts_begin_delete(self, resource_group):
+ response = await (
+ await self.client.elastic_accounts.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_accounts_list_by_resource_group(self, resource_group):
+ response = self.client.elastic_accounts.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_accounts_list_by_subscription(self, resource_group):
+ response = self.client.elastic_accounts.list_by_subscription()
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations.py
new file mode 100644
index 000000000000..2a5975f76da1
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations.py
@@ -0,0 +1,111 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticBackupPoliciesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_policies_get(self, resource_group):
+ response = self.client.elastic_backup_policies.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_policy_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_policies_begin_create_or_update(self, resource_group):
+ response = self.client.elastic_backup_policies.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_policy_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "assignedVolumesCount": 0,
+ "dailyBackupsToKeep": 0,
+ "monthlyBackupsToKeep": 0,
+ "policyState": "str",
+ "provisioningState": "str",
+ "weeklyBackupsToKeep": 0,
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_policies_begin_update(self, resource_group):
+ response = self.client.elastic_backup_policies.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_policy_name="str",
+ body={
+ "properties": {
+ "dailyBackupsToKeep": 0,
+ "monthlyBackupsToKeep": 0,
+ "policyState": "str",
+ "weeklyBackupsToKeep": 0,
+ },
+ "tags": {"str": "str"},
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_policies_begin_delete(self, resource_group):
+ response = self.client.elastic_backup_policies.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_policy_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_policies_list_by_elastic_account(self, resource_group):
+ response = self.client.elastic_backup_policies.list_by_elastic_account(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations_async.py
new file mode 100644
index 000000000000..c3111a40262a
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations_async.py
@@ -0,0 +1,118 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticBackupPoliciesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_policies_get(self, resource_group):
+ response = await self.client.elastic_backup_policies.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_policy_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_policies_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.elastic_backup_policies.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_policy_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "assignedVolumesCount": 0,
+ "dailyBackupsToKeep": 0,
+ "monthlyBackupsToKeep": 0,
+ "policyState": "str",
+ "provisioningState": "str",
+ "weeklyBackupsToKeep": 0,
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_policies_begin_update(self, resource_group):
+ response = await (
+ await self.client.elastic_backup_policies.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_policy_name="str",
+ body={
+ "properties": {
+ "dailyBackupsToKeep": 0,
+ "monthlyBackupsToKeep": 0,
+ "policyState": "str",
+ "weeklyBackupsToKeep": 0,
+ },
+ "tags": {"str": "str"},
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_policies_begin_delete(self, resource_group):
+ response = await (
+ await self.client.elastic_backup_policies.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_policy_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_policies_list_by_elastic_account(self, resource_group):
+ response = self.client.elastic_backup_policies.list_by_elastic_account(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations.py
new file mode 100644
index 000000000000..89de70ca5ea6
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations.py
@@ -0,0 +1,96 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticBackupVaultsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_vaults_get(self, resource_group):
+ response = self.client.elastic_backup_vaults.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_vaults_begin_create_or_update(self, resource_group):
+ response = self.client.elastic_backup_vaults.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {"provisioningState": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_vaults_begin_update(self, resource_group):
+ response = self.client.elastic_backup_vaults.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ body={"tags": {"str": "str"}},
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_vaults_begin_delete(self, resource_group):
+ response = self.client.elastic_backup_vaults.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backup_vaults_list_by_elastic_account(self, resource_group):
+ response = self.client.elastic_backup_vaults.list_by_elastic_account(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations_async.py
new file mode 100644
index 000000000000..432076357ee9
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations_async.py
@@ -0,0 +1,103 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticBackupVaultsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_vaults_get(self, resource_group):
+ response = await self.client.elastic_backup_vaults.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_vaults_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.elastic_backup_vaults.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {"provisioningState": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_vaults_begin_update(self, resource_group):
+ response = await (
+ await self.client.elastic_backup_vaults.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ body={"tags": {"str": "str"}},
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_vaults_begin_delete(self, resource_group):
+ response = await (
+ await self.client.elastic_backup_vaults.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backup_vaults_list_by_elastic_account(self, resource_group):
+ response = self.client.elastic_backup_vaults.list_by_elastic_account(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations.py
new file mode 100644
index 000000000000..aca78bdf7488
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations.py
@@ -0,0 +1,139 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticBackupsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backups_get(self, resource_group):
+ response = self.client.elastic_backups.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ backup_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backups_begin_create_or_update(self, resource_group):
+ response = self.client.elastic_backups.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ backup_name="str",
+ body={
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "elasticVolumeResourceId": "str",
+ "backupType": "str",
+ "completionDate": "2020-02-20 00:00:00",
+ "creationDate": "2020-02-20 00:00:00",
+ "elasticBackupPolicyResourceId": "str",
+ "elasticSnapshotResourceId": "str",
+ "failureReason": "str",
+ "label": "str",
+ "provisioningState": "str",
+ "size": 0,
+ "snapshotCreationDate": "2020-02-20 00:00:00",
+ "snapshotUsage": "str",
+ "volumeSize": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backups_begin_update(self, resource_group):
+ response = self.client.elastic_backups.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ backup_name="str",
+ body={
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "elasticVolumeResourceId": "str",
+ "backupType": "str",
+ "completionDate": "2020-02-20 00:00:00",
+ "creationDate": "2020-02-20 00:00:00",
+ "elasticBackupPolicyResourceId": "str",
+ "elasticSnapshotResourceId": "str",
+ "failureReason": "str",
+ "label": "str",
+ "provisioningState": "str",
+ "size": 0,
+ "snapshotCreationDate": "2020-02-20 00:00:00",
+ "snapshotUsage": "str",
+ "volumeSize": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backups_begin_delete(self, resource_group):
+ response = self.client.elastic_backups.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ backup_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_backups_list_by_vault(self, resource_group):
+ response = self.client.elastic_backups.list_by_vault(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations_async.py
new file mode 100644
index 000000000000..9449eb50fcc7
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations_async.py
@@ -0,0 +1,146 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticBackupsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backups_get(self, resource_group):
+ response = await self.client.elastic_backups.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ backup_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backups_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.elastic_backups.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ backup_name="str",
+ body={
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "elasticVolumeResourceId": "str",
+ "backupType": "str",
+ "completionDate": "2020-02-20 00:00:00",
+ "creationDate": "2020-02-20 00:00:00",
+ "elasticBackupPolicyResourceId": "str",
+ "elasticSnapshotResourceId": "str",
+ "failureReason": "str",
+ "label": "str",
+ "provisioningState": "str",
+ "size": 0,
+ "snapshotCreationDate": "2020-02-20 00:00:00",
+ "snapshotUsage": "str",
+ "volumeSize": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backups_begin_update(self, resource_group):
+ response = await (
+ await self.client.elastic_backups.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ backup_name="str",
+ body={
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "elasticVolumeResourceId": "str",
+ "backupType": "str",
+ "completionDate": "2020-02-20 00:00:00",
+ "creationDate": "2020-02-20 00:00:00",
+ "elasticBackupPolicyResourceId": "str",
+ "elasticSnapshotResourceId": "str",
+ "failureReason": "str",
+ "label": "str",
+ "provisioningState": "str",
+ "size": 0,
+ "snapshotCreationDate": "2020-02-20 00:00:00",
+ "snapshotUsage": "str",
+ "volumeSize": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backups_begin_delete(self, resource_group):
+ response = await (
+ await self.client.elastic_backups.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ backup_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_backups_list_by_vault(self, resource_group):
+ response = self.client.elastic_backups.list_by_vault(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ backup_vault_name="str",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations.py
new file mode 100644
index 000000000000..e07a93fc8f9d
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations.py
@@ -0,0 +1,140 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticCapacityPoolsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_capacity_pools_get(self, resource_group):
+ response = self.client.elastic_capacity_pools.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_capacity_pools_begin_create_or_update(self, resource_group):
+ response = self.client.elastic_capacity_pools.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "serviceLevel": "str",
+ "size": 0,
+ "subnetResourceId": "str",
+ "activeDirectoryConfigResourceId": "str",
+ "availabilityStatus": "str",
+ "currentZone": "str",
+ "encryption": {"elasticPoolEncryptionKeySource": "str", "keyVaultPrivateEndpointResourceId": "str"},
+ "provisioningState": "str",
+ "totalThroughputMibps": 0.0,
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "zones": ["str"],
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_capacity_pools_begin_update(self, resource_group):
+ response = self.client.elastic_capacity_pools.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ body={
+ "properties": {
+ "activeDirectoryConfigResourceId": "str",
+ "encryption": {"elasticPoolEncryptionKeySource": "str", "keyVaultPrivateEndpointResourceId": "str"},
+ "size": 0,
+ },
+ "tags": {"str": "str"},
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_capacity_pools_begin_delete(self, resource_group):
+ response = self.client.elastic_capacity_pools.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_capacity_pools_list_by_elastic_account(self, resource_group):
+ response = self.client.elastic_capacity_pools.list_by_elastic_account(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_capacity_pools_begin_change_zone(self, resource_group):
+ response = self.client.elastic_capacity_pools.begin_change_zone(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ body={"newZone": "str"},
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_capacity_pools_check_volume_file_path_availability(self, resource_group):
+ response = self.client.elastic_capacity_pools.check_volume_file_path_availability(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ body={"filePath": "str"},
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations_async.py
new file mode 100644
index 000000000000..464803929ce1
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations_async.py
@@ -0,0 +1,155 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticCapacityPoolsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_capacity_pools_get(self, resource_group):
+ response = await self.client.elastic_capacity_pools.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_capacity_pools_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.elastic_capacity_pools.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "serviceLevel": "str",
+ "size": 0,
+ "subnetResourceId": "str",
+ "activeDirectoryConfigResourceId": "str",
+ "availabilityStatus": "str",
+ "currentZone": "str",
+ "encryption": {
+ "elasticPoolEncryptionKeySource": "str",
+ "keyVaultPrivateEndpointResourceId": "str",
+ },
+ "provisioningState": "str",
+ "totalThroughputMibps": 0.0,
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "zones": ["str"],
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_capacity_pools_begin_update(self, resource_group):
+ response = await (
+ await self.client.elastic_capacity_pools.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ body={
+ "properties": {
+ "activeDirectoryConfigResourceId": "str",
+ "encryption": {
+ "elasticPoolEncryptionKeySource": "str",
+ "keyVaultPrivateEndpointResourceId": "str",
+ },
+ "size": 0,
+ },
+ "tags": {"str": "str"},
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_capacity_pools_begin_delete(self, resource_group):
+ response = await (
+ await self.client.elastic_capacity_pools.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_capacity_pools_list_by_elastic_account(self, resource_group):
+ response = self.client.elastic_capacity_pools.list_by_elastic_account(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_capacity_pools_begin_change_zone(self, resource_group):
+ response = await (
+ await self.client.elastic_capacity_pools.begin_change_zone(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ body={"newZone": "str"},
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_capacity_pools_check_volume_file_path_availability(self, resource_group):
+ response = await self.client.elastic_capacity_pools.check_volume_file_path_availability(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ body={"filePath": "str"},
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations.py
new file mode 100644
index 000000000000..786cf72f5f52
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations.py
@@ -0,0 +1,124 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticSnapshotPoliciesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshot_policies_get(self, resource_group):
+ response = self.client.elastic_snapshot_policies.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshot_policies_begin_create_or_update(self, resource_group):
+ response = self.client.elastic_snapshot_policies.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "dailySchedule": {"hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ "hourlySchedule": {"minute": 0, "snapshotsToKeep": 0},
+ "monthlySchedule": {"daysOfMonth": [0], "hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ "policyStatus": "str",
+ "provisioningState": "str",
+ "weeklySchedule": {"days": ["str"], "hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshot_policies_begin_update(self, resource_group):
+ response = self.client.elastic_snapshot_policies.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ body={
+ "properties": {
+ "dailySchedule": {"hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ "hourlySchedule": {"minute": 0, "snapshotsToKeep": 0},
+ "monthlySchedule": {"daysOfMonth": [0], "hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ "policyStatus": "str",
+ "weeklySchedule": {"days": ["str"], "hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ },
+ "tags": {"str": "str"},
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshot_policies_begin_delete(self, resource_group):
+ response = self.client.elastic_snapshot_policies.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshot_policies_list_by_elastic_account(self, resource_group):
+ response = self.client.elastic_snapshot_policies.list_by_elastic_account(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshot_policies_list_elastic_volumes(self, resource_group):
+ response = self.client.elastic_snapshot_policies.list_elastic_volumes(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations_async.py
new file mode 100644
index 000000000000..c891e271a4be
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations_async.py
@@ -0,0 +1,131 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticSnapshotPoliciesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshot_policies_get(self, resource_group):
+ response = await self.client.elastic_snapshot_policies.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshot_policies_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.elastic_snapshot_policies.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "dailySchedule": {"hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ "hourlySchedule": {"minute": 0, "snapshotsToKeep": 0},
+ "monthlySchedule": {"daysOfMonth": [0], "hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ "policyStatus": "str",
+ "provisioningState": "str",
+ "weeklySchedule": {"days": ["str"], "hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshot_policies_begin_update(self, resource_group):
+ response = await (
+ await self.client.elastic_snapshot_policies.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ body={
+ "properties": {
+ "dailySchedule": {"hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ "hourlySchedule": {"minute": 0, "snapshotsToKeep": 0},
+ "monthlySchedule": {"daysOfMonth": [0], "hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ "policyStatus": "str",
+ "weeklySchedule": {"days": ["str"], "hour": 0, "minute": 0, "snapshotsToKeep": 0},
+ },
+ "tags": {"str": "str"},
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshot_policies_begin_delete(self, resource_group):
+ response = await (
+ await self.client.elastic_snapshot_policies.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshot_policies_list_by_elastic_account(self, resource_group):
+ response = self.client.elastic_snapshot_policies.list_by_elastic_account(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshot_policies_list_elastic_volumes(self, resource_group):
+ response = self.client.elastic_snapshot_policies.list_elastic_volumes(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ snapshot_policy_name="str",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations.py
new file mode 100644
index 000000000000..9ec309a1ac18
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations.py
@@ -0,0 +1,88 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticSnapshotsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshots_get(self, resource_group):
+ response = self.client.elastic_snapshots.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ snapshot_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshots_begin_create_or_update(self, resource_group):
+ response = self.client.elastic_snapshots.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ snapshot_name="str",
+ body={
+ "id": "str",
+ "name": "str",
+ "properties": {"provisioningState": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshots_begin_delete(self, resource_group):
+ response = self.client.elastic_snapshots.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ snapshot_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_snapshots_list_by_elastic_volume(self, resource_group):
+ response = self.client.elastic_snapshots.list_by_elastic_volume(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations_async.py
new file mode 100644
index 000000000000..b191f7f9e9c9
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations_async.py
@@ -0,0 +1,93 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticSnapshotsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshots_get(self, resource_group):
+ response = await self.client.elastic_snapshots.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ snapshot_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshots_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.elastic_snapshots.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ snapshot_name="str",
+ body={
+ "id": "str",
+ "name": "str",
+ "properties": {"provisioningState": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshots_begin_delete(self, resource_group):
+ response = await (
+ await self.client.elastic_snapshots.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ snapshot_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_snapshots_list_by_elastic_volume(self, resource_group):
+ response = self.client.elastic_snapshots.list_by_elastic_volume(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations.py
new file mode 100644
index 000000000000..89d83270afc8
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations.py
@@ -0,0 +1,175 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticVolumesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_volumes_get(self, resource_group):
+ response = self.client.elastic_volumes.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_volumes_begin_create_or_update(self, resource_group):
+ response = self.client.elastic_volumes.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "filePath": "str",
+ "protocolTypes": ["str"],
+ "size": 0,
+ "availabilityStatus": "str",
+ "backupResourceId": "str",
+ "dataProtection": {
+ "backup": {
+ "elasticBackupPolicyResourceId": "str",
+ "elasticBackupVaultResourceId": "str",
+ "policyEnforcement": "str",
+ },
+ "snapshot": {"snapshotPolicyResourceId": "str"},
+ },
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": ["str"],
+ "nfsv3": "str",
+ "nfsv4": "str",
+ "rootAccess": "str",
+ "ruleIndex": 0,
+ "unixAccessRule": "str",
+ }
+ ]
+ },
+ "mountTargets": [{"ipAddress": "str", "smbServerFqdn": "str"}],
+ "provisioningState": "str",
+ "restorationState": "str",
+ "smbProperties": {"smbEncryption": "str"},
+ "snapshotDirectoryVisibility": "str",
+ "snapshotResourceId": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "zones": ["str"],
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_volumes_begin_update(self, resource_group):
+ response = self.client.elastic_volumes.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ body={
+ "properties": {
+ "dataProtection": {
+ "backup": {
+ "elasticBackupPolicyResourceId": "str",
+ "elasticBackupVaultResourceId": "str",
+ "policyEnforcement": "str",
+ },
+ "snapshot": {"snapshotPolicyResourceId": "str"},
+ },
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": ["str"],
+ "nfsv3": "str",
+ "nfsv4": "str",
+ "rootAccess": "str",
+ "ruleIndex": 0,
+ "unixAccessRule": "str",
+ }
+ ]
+ },
+ "size": 0,
+ "smbProperties": {"smbEncryption": "str"},
+ "snapshotDirectoryVisibility": "str",
+ },
+ "tags": {"str": "str"},
+ },
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_volumes_begin_delete(self, resource_group):
+ response = self.client.elastic_volumes.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_volumes_list_by_elastic_pool(self, resource_group):
+ response = self.client.elastic_volumes.list_by_elastic_pool(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_elastic_volumes_begin_revert(self, resource_group):
+ response = self.client.elastic_volumes.begin_revert(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ body={"snapshotResourceId": "str"},
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations_async.py
new file mode 100644
index 000000000000..0e7a23ba2dde
--- /dev/null
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations_async.py
@@ -0,0 +1,184 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) Python Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.netapp.aio import NetAppManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestNetAppManagementElasticVolumesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(NetAppManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_volumes_get(self, resource_group):
+ response = await self.client.elastic_volumes.get(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_volumes_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.elastic_volumes.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ body={
+ "location": "str",
+ "eTag": "str",
+ "id": "str",
+ "name": "str",
+ "properties": {
+ "filePath": "str",
+ "protocolTypes": ["str"],
+ "size": 0,
+ "availabilityStatus": "str",
+ "backupResourceId": "str",
+ "dataProtection": {
+ "backup": {
+ "elasticBackupPolicyResourceId": "str",
+ "elasticBackupVaultResourceId": "str",
+ "policyEnforcement": "str",
+ },
+ "snapshot": {"snapshotPolicyResourceId": "str"},
+ },
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": ["str"],
+ "nfsv3": "str",
+ "nfsv4": "str",
+ "rootAccess": "str",
+ "ruleIndex": 0,
+ "unixAccessRule": "str",
+ }
+ ]
+ },
+ "mountTargets": [{"ipAddress": "str", "smbServerFqdn": "str"}],
+ "provisioningState": "str",
+ "restorationState": "str",
+ "smbProperties": {"smbEncryption": "str"},
+ "snapshotDirectoryVisibility": "str",
+ "snapshotResourceId": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "zones": ["str"],
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_volumes_begin_update(self, resource_group):
+ response = await (
+ await self.client.elastic_volumes.begin_update(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ body={
+ "properties": {
+ "dataProtection": {
+ "backup": {
+ "elasticBackupPolicyResourceId": "str",
+ "elasticBackupVaultResourceId": "str",
+ "policyEnforcement": "str",
+ },
+ "snapshot": {"snapshotPolicyResourceId": "str"},
+ },
+ "exportPolicy": {
+ "rules": [
+ {
+ "allowedClients": ["str"],
+ "nfsv3": "str",
+ "nfsv4": "str",
+ "rootAccess": "str",
+ "ruleIndex": 0,
+ "unixAccessRule": "str",
+ }
+ ]
+ },
+ "size": 0,
+ "smbProperties": {"smbEncryption": "str"},
+ "snapshotDirectoryVisibility": "str",
+ },
+ "tags": {"str": "str"},
+ },
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_volumes_begin_delete(self, resource_group):
+ response = await (
+ await self.client.elastic_volumes.begin_delete(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_volumes_list_by_elastic_pool(self, resource_group):
+ response = self.client.elastic_volumes.list_by_elastic_pool(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_elastic_volumes_begin_revert(self, resource_group):
+ response = await (
+ await self.client.elastic_volumes.begin_revert(
+ resource_group_name=resource_group.name,
+ account_name="str",
+ pool_name="str",
+ volume_name="str",
+ body={"snapshotResourceId": "str"},
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volume_groups_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volume_groups_operations.py
index ed1c6dc1efe2..fa7b11b561e5 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volume_groups_operations.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volume_groups_operations.py
@@ -138,7 +138,10 @@ def test_volume_groups_begin_create(self, resource_group):
"isRestoring": bool,
"kerberosEnabled": bool,
"keyVaultPrivateEndpointResourceId": "str",
+ "language": "str",
+ "largeVolumeType": "str",
"ldapEnabled": bool,
+ "ldapServerType": "str",
"maximumNumberOfFiles": 0,
"mountTargets": [
{
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volume_groups_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volume_groups_operations_async.py
index e85958487a49..e9c6c1e9013e 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volume_groups_operations_async.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volume_groups_operations_async.py
@@ -144,7 +144,10 @@ async def test_volume_groups_begin_create(self, resource_group):
"isRestoring": bool,
"kerberosEnabled": bool,
"keyVaultPrivateEndpointResourceId": "str",
+ "language": "str",
+ "largeVolumeType": "str",
"ldapEnabled": bool,
+ "ldapServerType": "str",
"maximumNumberOfFiles": 0,
"mountTargets": [
{
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volumes_operations.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volumes_operations.py
index 6cccb58d08f0..c246e210b195 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volumes_operations.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volumes_operations.py
@@ -118,7 +118,10 @@ def test_volumes_begin_create_or_update(self, resource_group):
"isRestoring": bool,
"kerberosEnabled": bool,
"keyVaultPrivateEndpointResourceId": "str",
+ "language": "str",
+ "largeVolumeType": "str",
"ldapEnabled": bool,
+ "ldapServerType": "str",
"maximumNumberOfFiles": 0,
"mountTargets": [
{"fileSystemId": "str", "ipAddress": "str", "mountTargetId": "str", "smbServerFqdn": "str"}
diff --git a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volumes_operations_async.py b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volumes_operations_async.py
index 2047229e6eda..4ff5a7f6cc0a 100644
--- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volumes_operations_async.py
+++ b/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_volumes_operations_async.py
@@ -120,7 +120,10 @@ async def test_volumes_begin_create_or_update(self, resource_group):
"isRestoring": bool,
"kerberosEnabled": bool,
"keyVaultPrivateEndpointResourceId": "str",
+ "language": "str",
+ "largeVolumeType": "str",
"ldapEnabled": bool,
+ "ldapServerType": "str",
"maximumNumberOfFiles": 0,
"mountTargets": [
{"fileSystemId": "str", "ipAddress": "str", "mountTargetId": "str", "smbServerFqdn": "str"}
diff --git a/sdk/netapp/azure-mgmt-netapp/pyproject.toml b/sdk/netapp/azure-mgmt-netapp/pyproject.toml
index d89eeae0a296..6738596cfaad 100644
--- a/sdk/netapp/azure-mgmt-netapp/pyproject.toml
+++ b/sdk/netapp/azure-mgmt-netapp/pyproject.toml
@@ -13,7 +13,7 @@ authors = [
description = "Microsoft Azure Netapp Management Client Library for Python"
license = "MIT"
classifiers = [
- "Development Status :: 5 - Production/Stable",
+ "Development Status :: 4 - Beta",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3",
@@ -78,7 +78,7 @@ verifytypes = false
package_name = "azure-mgmt-netapp"
package_pprint_name = "NetApp Files Management"
package_doc_id = ""
-is_stable = true
+is_stable = false
is_arm = true
title = "NetAppManagementClient"
package_nspkg = "azure-mgmt-nspkg"
diff --git a/sdk/netapp/azure-mgmt-netapp/tsp-location.yaml b/sdk/netapp/azure-mgmt-netapp/tsp-location.yaml
index a693bb4bf15b..5f057c19c231 100644
--- a/sdk/netapp/azure-mgmt-netapp/tsp-location.yaml
+++ b/sdk/netapp/azure-mgmt-netapp/tsp-location.yaml
@@ -1,4 +1,4 @@
directory: specification/netapp/resource-manager/Microsoft.NetApp/NetApp
-commit: 7b08703f0340226430bd8838aad0d7ac4ab5a665
+commit: c97fe996d4a10f7d583b7951b07bd4b52b3a1be0
repo: Azure/azure-rest-api-specs
additionalDirectories: