From 113a27a5fd7f1fa7a7753156bb19621aa5638e1e Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Tue, 20 Oct 2026 16:45:14 +0000 Subject: [PATCH 1/4] Configurations: 'specification/netapp/resource-manager/Microsoft.NetApp/NetApp/tspconfig.yaml', API Version: 2026-08-01, SDK Release Type: stable, and CommitSHA: '52d43820f214975f29c5d263e0311210dd7e336b' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6979692 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --- sdk/netapp/azure-mgmt-netapp/CHANGELOG.md | 26 + sdk/netapp/azure-mgmt-netapp/_metadata.json | 10 +- sdk/netapp/azure-mgmt-netapp/api.md | 14289 ++++----- sdk/netapp/azure-mgmt-netapp/api.metadata.yml | 5 +- .../azure-mgmt-netapp/apiview-properties.json | 201 +- .../azure/mgmt/netapp/_client.py | 59 +- .../azure/mgmt/netapp/_configuration.py | 9 +- .../azure/mgmt/netapp/_version.py | 2 +- .../azure/mgmt/netapp/aio/_client.py | 61 +- .../azure/mgmt/netapp/aio/_configuration.py | 9 +- .../mgmt/netapp/aio/operations/__init__.py | 18 - .../mgmt/netapp/aio/operations/_operations.py | 9992 +----- .../azure/mgmt/netapp/models/__init__.py | 170 +- .../azure/mgmt/netapp/models/_enums.py | 243 +- .../azure/mgmt/netapp/models/_models.py | 3427 +-- .../azure/mgmt/netapp/operations/__init__.py | 18 - .../mgmt/netapp/operations/_operations.py | 25355 +++++----------- .../azure/mgmt/netapp/types.py | 2089 +- .../accounts_change_key_vault.py | 2 +- .../accounts_create_or_update.py | 2 +- .../accounts_create_or_update_ad.py | 2 +- .../accounts_create_or_update_ldap_config.py | 2 +- .../generated_samples/accounts_delete.py | 2 +- .../generated_samples/accounts_get.py | 2 +- ...counts_get_change_key_vault_information.py | 2 +- .../generated_samples/accounts_list.py | 2 +- .../accounts_list_by_subscription.py | 2 +- .../accounts_refresh_ldap_bind_password.py | 2 +- .../accounts_renew_credentials.py | 2 +- .../accounts_transition_encryption_key.py | 2 +- .../generated_samples/accounts_update.py | 2 +- ...tive_directory_configs_create_or_update.py | 73 - .../active_directory_configs_delete.py | 41 - .../active_directory_configs_get.py | 42 - ...irectory_configs_list_by_resource_group.py | 42 - ..._directory_configs_list_by_subscription.py | 40 - .../active_directory_configs_update.py | 43 - .../backup_policies_create.py | 2 +- .../backup_policies_delete.py | 2 +- .../generated_samples/backup_policies_get.py | 2 +- .../generated_samples/backup_policies_list.py | 2 +- .../backup_policies_update.py | 2 +- .../generated_samples/backup_vaults_create.py | 2 +- .../generated_samples/backup_vaults_delete.py | 2 +- .../generated_samples/backup_vaults_get.py | 2 +- .../generated_samples/backup_vaults_list.py | 2 +- .../generated_samples/backup_vaults_update.py | 2 +- .../backups_list_by_vault.py | 2 +- .../backups_under_account_migrate.py | 2 +- .../backups_under_backup_vault_create.py | 2 +- .../backups_under_backup_vault_delete.py | 2 +- .../backups_under_backup_vault_get.py | 2 +- ..._under_backup_vault_single_file_restore.py | 2 +- .../backups_under_backup_vault_update.py | 2 +- .../backups_under_volume_migrate.py | 2 +- .../buckets_create_or_update.py | 2 +- .../buckets_create_or_update_with_akv.py | 5 +- .../generated_samples/buckets_delete.py | 2 +- .../buckets_generate_akv_credentials.py | 2 +- .../buckets_generate_credentials.py | 2 +- .../generated_samples/buckets_get.py | 2 +- .../generated_samples/buckets_list.py | 2 +- .../buckets_refresh_certificate.py | 2 +- .../generated_samples/buckets_update.py | 2 +- .../buckets_update_with_akv.py | 5 +- .../caches_create_or_update.py | 2 +- .../generated_samples/caches_delete.py | 2 +- .../generated_samples/caches_get.py | 2 +- .../generated_samples/caches_list.py | 2 +- .../caches_list_peering_passphrases.py | 2 +- .../generated_samples/caches_pool_change.py | 2 +- .../caches_reset_smb_password.py | 2 +- .../generated_samples/caches_update.py | 2 +- .../check_file_path_availability.py | 2 +- .../check_name_availability.py | 2 +- .../check_quota_availability.py | 2 +- .../elastic_accounts_create_or_update.py | 43 - .../elastic_accounts_delete.py | 41 - .../generated_samples/elastic_accounts_get.py | 42 - ...elastic_accounts_list_by_resource_group.py | 42 - .../elastic_accounts_list_by_subscription.py | 40 - .../elastic_accounts_update.py | 43 - ...lastic_backup_policies_create_or_update.py | 52 - .../elastic_backup_policies_delete.py | 42 - .../elastic_backup_policies_get.py | 43 - .../elastic_backup_policies_list.py | 43 - .../elastic_backup_policies_update.py | 51 - .../elastic_backup_vaults_create.py | 44 - .../elastic_backup_vaults_delete.py | 42 - .../elastic_backup_vaults_get.py | 43 - ...c_backup_vaults_list_by_elastic_account.py | 43 - .../elastic_backup_vaults_update.py | 44 - .../elastic_backups_create_or_update.py | 53 - .../elastic_backups_delete.py | 43 - .../generated_samples/elastic_backups_get.py | 44 - .../elastic_backups_list_by_vault.py | 44 - .../elastic_backups_update.py | 72 - .../elastic_capacity_pools_change_zone.py | 44 - ...ols_check_volume_file_path_availability.py | 44 - ...elastic_capacity_pools_create_or_update.py | 54 - ...tic_capacity_pools_create_or_update_cmk.py | 58 - .../elastic_capacity_pools_delete.py | 42 - .../elastic_capacity_pools_get.py | 43 - ..._capacity_pools_list_by_elastic_account.py | 43 - .../elastic_capacity_pools_update.py | 50 - ...stic_snapshot_policies_create_or_update.py | 53 - .../elastic_snapshot_policies_delete.py | 42 - .../elastic_snapshot_policies_get.py | 43 - ...apshot_policies_list_by_elastic_account.py | 43 - ..._snapshot_policies_list_elastic_volumes.py | 44 - .../elastic_snapshot_policies_update.py | 52 - .../elastic_snapshots_create_or_update.py | 59 - .../elastic_snapshots_delete.py | 44 - .../elastic_snapshots_get.py | 45 - ...lastic_snapshots_list_by_elastic_volume.py | 45 - .../elastic_volumes_create_or_update.py | 75 - .../elastic_volumes_delete.py | 43 - .../generated_samples/elastic_volumes_get.py | 44 - .../elastic_volumes_list_by_elastic_pool.py | 44 - .../elastic_volumes_revert.py | 48 - .../elastic_volumes_update.py | 66 - .../group_id_list_for_ldap_user.py | 2 +- ...t_app_resource_quota_limits_account_get.py | 2 +- ..._app_resource_quota_limits_account_list.py | 2 +- .../net_app_resource_quota_limits_get.py | 2 +- .../net_app_resource_quota_limits_list.py | 2 +- .../network_sibling_set_query.py | 2 +- .../network_sibling_set_update.py | 2 +- .../generated_samples/operation_list.py | 2 +- .../pools_create_or_update.py | 2 +- ...ools_create_or_update_custom_throughput.py | 2 +- .../generated_samples/pools_delete.py | 2 +- .../generated_samples/pools_get.py | 2 +- .../pools_get_custom_throughput.py | 2 +- .../generated_samples/pools_list.py | 2 +- .../generated_samples/pools_update.py | 2 +- .../pools_update_custom_throughput.py | 2 +- .../ransomware_reports_clear_suspects.py | 2 +- .../ransomware_reports_get.py | 2 +- .../ransomware_reports_list.py | 2 +- .../generated_samples/region_info.py | 2 +- .../generated_samples/region_infos_get.py | 2 +- .../generated_samples/region_infos_list.py | 2 +- .../snapshot_policies_create.py | 2 +- .../snapshot_policies_delete.py | 2 +- .../snapshot_policies_get.py | 2 +- .../snapshot_policies_list.py | 2 +- .../snapshot_policies_list_volumes.py | 2 +- .../snapshot_policies_update.py | 2 +- .../generated_samples/snapshots_create.py | 2 +- .../generated_samples/snapshots_delete.py | 2 +- .../generated_samples/snapshots_get.py | 2 +- .../generated_samples/snapshots_list.py | 2 +- .../snapshots_single_file_restore.py | 2 +- .../generated_samples/snapshots_update.py | 2 +- .../generated_samples/subvolumes_create.py | 2 +- .../generated_samples/subvolumes_delete.py | 2 +- .../generated_samples/subvolumes_get.py | 2 +- .../generated_samples/subvolumes_list.py | 2 +- .../generated_samples/subvolumes_metadata.py | 2 +- .../generated_samples/subvolumes_update.py | 2 +- .../generated_samples/usages_get.py | 2 +- .../generated_samples/usages_list.py | 2 +- .../volume_groups_create_custom.py | 2 +- .../volume_groups_create_custom_smb.py | 2 +- .../volume_groups_create_oracle.py | 2 +- .../volume_groups_create_sap_hana.py | 2 +- .../generated_samples/volume_groups_delete.py | 2 +- .../volume_groups_get_custom.py | 2 +- .../volume_groups_get_custom_smb.py | 2 +- .../volume_groups_get_oracle.py | 2 +- .../volume_groups_get_sap_hana.py | 2 +- .../volume_groups_list_custom.py | 2 +- .../volume_groups_list_oracle.py | 2 +- .../volume_groups_list_sap_hana.py | 2 +- .../volume_quota_rules_create.py | 2 +- .../volume_quota_rules_delete.py | 2 +- .../volume_quota_rules_get.py | 2 +- .../volume_quota_rules_list.py | 2 +- .../volume_quota_rules_update.py | 2 +- .../volumes_authorize_external_replication.py | 2 +- .../volumes_authorize_replication.py | 2 +- .../volumes_break_file_locks.py | 2 +- .../volumes_break_replication.py | 2 +- .../volumes_create_or_update.py | 2 +- .../generated_samples/volumes_delete.py | 2 +- .../volumes_delete_replication.py | 2 +- .../volumes_extra_large_volumes_get.py | 2 +- .../volumes_extra_large_volumes_list.py | 2 +- .../volumes_finalize_external_replication.py | 2 +- .../volumes_finalize_relocation.py | 2 +- .../generated_samples/volumes_get.py | 2 +- .../volumes_latest_backup_status.py | 2 +- .../volumes_latest_restore_status.py | 2 +- .../generated_samples/volumes_list.py | 2 +- .../volumes_list_quota_report.py | 2 +- .../volumes_list_replications.py | 2 +- .../volumes_peer_external_cluster.py | 2 +- .../volumes_perform_replication_transfer.py | 2 +- .../generated_samples/volumes_pool_change.py | 2 +- .../volumes_populate_availability_zones.py | 2 +- .../volumes_re_initialize_replication.py | 2 +- .../volumes_reestablish_replication.py | 2 +- .../generated_samples/volumes_relocate.py | 2 +- .../volumes_replication_status.py | 2 +- .../volumes_reset_cifs_password.py | 2 +- .../volumes_resync_replication.py | 2 +- .../generated_samples/volumes_revert.py | 2 +- .../volumes_revert_relocation.py | 2 +- .../generated_samples/volumes_split_clone.py | 2 +- .../generated_samples/volumes_update.py | 2 +- ..._net_app_management_accounts_operations.py | 32 +- ...pp_management_accounts_operations_async.py | 36 +- ...ent_active_directory_configs_operations.py | 144 - ...tive_directory_configs_operations_async.py | 151 - ...t_net_app_management_buckets_operations.py | 24 +- ...app_management_buckets_operations_async.py | 24 +- ..._management_elastic_accounts_operations.py | 137 - ...ement_elastic_accounts_operations_async.py | 152 - ...ment_elastic_backup_policies_operations.py | 111 - ...lastic_backup_policies_operations_async.py | 118 - ...gement_elastic_backup_vaults_operations.py | 96 - ..._elastic_backup_vaults_operations_async.py | 103 - ...p_management_elastic_backups_operations.py | 139 - ...gement_elastic_backups_operations_async.py | 146 - ...ement_elastic_capacity_pools_operations.py | 140 - ...elastic_capacity_pools_operations_async.py | 155 - ...nt_elastic_snapshot_policies_operations.py | 124 - ...stic_snapshot_policies_operations_async.py | 131 - ...management_elastic_snapshots_operations.py | 88 - ...ment_elastic_snapshots_operations_async.py | 93 - ...p_management_elastic_volumes_operations.py | 175 - ...gement_elastic_volumes_operations_async.py | 184 - ...app_management_volume_groups_operations.py | 3 - ...nagement_volume_groups_operations_async.py | 3 - ...t_net_app_management_volumes_operations.py | 3 - ...app_management_volumes_operations_async.py | 3 - sdk/netapp/azure-mgmt-netapp/pyproject.toml | 4 +- .../azure-mgmt-netapp/tsp-location.yaml | 2 +- 239 files changed, 13350 insertions(+), 47847 deletions(-) delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_create_or_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_resource_group.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_subscription.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_create_or_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_resource_group.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_subscription.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_create_or_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_list.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_create.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_list_by_elastic_account.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_create_or_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_list_by_vault.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_change_zone.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_check_volume_file_path_availability.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update_cmk.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_list_by_elastic_account.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_create_or_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_by_elastic_account.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_elastic_volumes.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_create_or_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_list_by_elastic_volume.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_create_or_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_delete.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_get.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_list_by_elastic_pool.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_revert.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_update.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations_async.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations_async.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations_async.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations_async.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations_async.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations_async.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations_async.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations_async.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations.py delete mode 100644 sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations_async.py diff --git a/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md b/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md index 96b215f3c2a5..3f6c9b0276eb 100644 --- a/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md +++ b/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md @@ -1,5 +1,31 @@ # Release History +## 18.0.0 (2026-10-20) + +### Features Added + + - Model `AccountProperties` added property `ldap_configuration` + - Enum `NetAppProvisioningState` added member `CANCELED` + - Added model `AccountEncryptionPatch` + - Added model `AccountPropertiesPatch` + - Added model `ActiveDirectoryPatch` + - Added enum `BindAuthenticationLevel` + - Added model `BindPasswordAkvConfig` + - Added model `BindPasswordAkvConfigPatch` + - Added model `EncryptionIdentityPatch` + - Added model `KeyVaultPropertiesPatch` + - Added model `LdapConfiguration` + - Added model `LdapConfigurationPatch` + - Added enum `SecureLdapType` + - Model `AccountsOperations` added method `begin_refresh_ldap_bind_password` + +### Breaking Changes + + - Model `NetAppAccountPatch` deleted or renamed its instance variable `id` + - Model `NetAppAccountPatch` deleted or renamed its instance variable `location` + - Model `NetAppAccountPatch` deleted or renamed its instance variable `name` + - Model `NetAppAccountPatch` deleted or renamed its instance variable `type` + ## 18.0.0b3 (2026-08-26) ### Features Added diff --git a/sdk/netapp/azure-mgmt-netapp/_metadata.json b/sdk/netapp/azure-mgmt-netapp/_metadata.json index 432b09ca935c..a395dd3b9323 100644 --- a/sdk/netapp/azure-mgmt-netapp/_metadata.json +++ b/sdk/netapp/azure-mgmt-netapp/_metadata.json @@ -1,11 +1,11 @@ { - "apiVersion": "2026-06-15-preview", + "apiVersion": "2026-08-01", "apiVersions": { - "Microsoft.NetApp": "2026-06-15-preview" + "Microsoft.NetApp": "2026-08-01" }, - "commit": "7b37a9458cffc3977f2c84f487fcb3ccc429f8a7", + "commit": "52d43820f214975f29c5d263e0311210dd7e336b", "repository_url": "https://github.com/Azure/azure-rest-api-specs", "typespec_src": "specification/netapp/resource-manager/Microsoft.NetApp/NetApp", - "emitterVersion": "0.63.5", - "httpClientPythonVersion": "^0.36.0" + "emitterVersion": "0.63.10", + "httpClientPythonVersion": "0.39.0" } \ No newline at end of file diff --git a/sdk/netapp/azure-mgmt-netapp/api.md b/sdk/netapp/azure-mgmt-netapp/api.md index 4853c7271421..032ca0638c7d 100644 --- a/sdk/netapp/azure-mgmt-netapp/api.md +++ b/sdk/netapp/azure-mgmt-netapp/api.md @@ -3,7 +3,6 @@ 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 @@ -12,14 +11,6 @@ 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 @@ -62,7 +53,6 @@ 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 @@ -71,14 +61,6 @@ 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 @@ -210,7 +192,7 @@ namespace azure.mgmt.netapp.aio.operations ) -> 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', '2026-06-15-preview']) + @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', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def begin_refresh_ldap_bind_password( self, resource_group_name: str, @@ -311,111 +293,6 @@ 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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-15-preview']) - def list_by_subscription(self, **kwargs: Any) -> AsyncItemPaged[ActiveDirectoryConfig]: ... - - class azure.mgmt.netapp.aio.operations.BackupPoliciesOperations: def __init__( @@ -957,7 +834,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def begin_delete( self, resource_group_name: str, @@ -1011,7 +888,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def begin_refresh_certificate( self, resource_group_name: str, @@ -1107,7 +984,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def get( self, resource_group_name: str, @@ -1119,7 +996,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) def list( self, resource_group_name: str, @@ -1178,7 +1055,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def begin_delete( self, resource_group_name: str, @@ -1228,7 +1105,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def begin_reset_smb_password( self, resource_group_name: str, @@ -1278,7 +1155,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def get( self, resource_group_name: str, @@ -1289,7 +1166,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) def list( self, resource_group_name: str, @@ -1299,7 +1176,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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def list_peering_passphrases( self, resource_group_name: str, @@ -1310,7 +1187,7 @@ namespace azure.mgmt.netapp.aio.operations ) -> PeeringPassphrases: ... - class azure.mgmt.netapp.aio.operations.ElasticAccountsOperations: + class azure.mgmt.netapp.aio.operations.NetAppResourceOperations: def __init__( self, @@ -1319,213 +1196,192 @@ namespace azure.mgmt.netapp.aio.operations ) -> None: ... @overload - async def begin_create_or_update( + async def begin_update_network_sibling_set( self, - resource_group_name: str, - account_name: str, - body: ElasticAccount, + location: str, + body: UpdateNetworkSiblingSetRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticAccount]: ... + ) -> AsyncLROPoller[NetworkSiblingSet]: ... @overload - async def begin_create_or_update( + async def begin_update_network_sibling_set( self, - resource_group_name: str, - account_name: str, - body: ElasticAccount, + location: str, + body: UpdateNetworkSiblingSetRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticAccount]: ... + ) -> AsyncLROPoller[NetworkSiblingSet]: ... @overload - async def begin_create_or_update( + async def begin_update_network_sibling_set( self, - resource_group_name: str, - account_name: str, + location: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticAccount]: ... - - @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', '2026-06-15-preview']) - async def begin_delete( - self, - resource_group_name: str, - account_name: str, - **kwargs: Any - ) -> AsyncLROPoller[None]: ... + ) -> AsyncLROPoller[NetworkSiblingSet]: ... @overload - async def begin_update( + async def check_file_path_availability( self, - resource_group_name: str, - account_name: str, - body: ElasticAccountUpdate, + location: str, + body: FilePathAvailabilityRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticAccount]: ... + ) -> CheckAvailabilityResponse: ... @overload - async def begin_update( + async def check_file_path_availability( self, - resource_group_name: str, - account_name: str, - body: ElasticAccountUpdate, + location: str, + body: FilePathAvailabilityRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticAccount]: ... + ) -> CheckAvailabilityResponse: ... @overload - async def begin_update( + async def check_file_path_availability( self, - resource_group_name: str, - account_name: str, + location: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticAccount]: ... + ) -> CheckAvailabilityResponse: ... - @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', '2026-06-15-preview']) - async def get( + @overload + async def check_name_availability( self, - resource_group_name: str, - account_name: str, + location: str, + body: ResourceNameAvailabilityRequest, + *, + content_type: str = "application/json", **kwargs: Any - ) -> ElasticAccount: ... + ) -> CheckAvailabilityResponse: ... - @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', '2026-06-15-preview']) - def list_by_resource_group( + @overload + async def check_name_availability( self, - resource_group_name: str, + location: str, + body: ResourceNameAvailabilityRequest, + *, + content_type: str = "application/json", **kwargs: Any - ) -> 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', '2026-06-15-preview']) - def list_by_subscription(self, **kwargs: Any) -> AsyncItemPaged[ElasticAccount]: ... - - - class azure.mgmt.netapp.aio.operations.ElasticBackupPoliciesOperations: - - def __init__( - self, - *args, - **kwargs - ) -> None: ... + ) -> CheckAvailabilityResponse: ... @overload - async def begin_create_or_update( + async def check_name_availability( self, - resource_group_name: str, - account_name: str, - backup_policy_name: str, - body: ElasticBackupPolicy, + location: str, + body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupPolicy]: ... + ) -> CheckAvailabilityResponse: ... @overload - async def begin_create_or_update( + async def check_quota_availability( self, - resource_group_name: str, - account_name: str, - backup_policy_name: str, - body: ElasticBackupPolicy, + location: str, + body: QuotaAvailabilityRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupPolicy]: ... + ) -> CheckAvailabilityResponse: ... @overload - async def begin_create_or_update( + async def check_quota_availability( self, - resource_group_name: str, - account_name: str, - backup_policy_name: str, - body: IO[bytes], + location: str, + body: QuotaAvailabilityRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupPolicy]: ... + ) -> CheckAvailabilityResponse: ... - @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', '2026-06-15-preview']) - async def begin_delete( + @overload + async def check_quota_availability( self, - resource_group_name: str, - account_name: str, - backup_policy_name: str, + location: str, + body: IO[bytes], + *, + content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: ... + ) -> CheckAvailabilityResponse: ... @overload - async def begin_update( + async def query_network_sibling_set( self, - resource_group_name: str, - account_name: str, - backup_policy_name: str, - body: ElasticBackupPolicyUpdate, + location: str, + body: QueryNetworkSiblingSetRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupPolicy]: ... + ) -> NetworkSiblingSet: ... @overload - async def begin_update( + async def query_network_sibling_set( self, - resource_group_name: str, - account_name: str, - backup_policy_name: str, - body: ElasticBackupPolicyUpdate, + location: str, + body: QueryNetworkSiblingSetRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupPolicy]: ... + ) -> NetworkSiblingSet: ... @overload - async def begin_update( + async def query_network_sibling_set( self, - resource_group_name: str, - account_name: str, - backup_policy_name: str, + location: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupPolicy]: ... + ) -> 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: ... @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', '2026-06-15-preview']) + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) async def get( self, resource_group_name: str, account_name: str, - backup_policy_name: str, + quota_limit_name: str, **kwargs: Any - ) -> ElasticBackupPolicy: ... + ) -> QuotaItem: ... @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', '2026-06-15-preview']) - def list_by_elastic_account( + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + def list( self, resource_group_name: str, account_name: str, **kwargs: Any - ) -> AsyncItemPaged[ElasticBackupPolicy]: ... + ) -> AsyncItemPaged[QuotaItem]: ... - class azure.mgmt.netapp.aio.operations.ElasticBackupVaultsOperations: + class azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsOperations: def __init__( self, @@ -1533,109 +1389,82 @@ namespace azure.mgmt.netapp.aio.operations **kwargs ) -> None: ... - @overload - async def begin_create_or_update( + @distributed_trace_async + async def get( self, - resource_group_name: str, - account_name: str, - backup_vault_name: str, - body: ElasticBackupVault, - *, - content_type: str = "application/json", + location: str, + quota_limit_name: str, **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupVault]: ... + ) -> QuotaItem: ... - @overload - async def begin_create_or_update( + @distributed_trace + def list( self, - resource_group_name: str, - account_name: str, - backup_vault_name: str, - body: ElasticBackupVault, - *, - content_type: str = "application/json", + location: str, **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupVault]: ... + ) -> AsyncItemPaged[QuotaItem]: ... - @overload - async def begin_create_or_update( + + class azure.mgmt.netapp.aio.operations.NetAppResourceRegionInfosOperations: + + def __init__( self, - resource_group_name: str, - account_name: str, - backup_vault_name: str, - body: IO[bytes], - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupVault]: ... + *args, + **kwargs + ) -> 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', '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', '2026-06-15-preview']) - async def begin_delete( + async def get( self, - resource_group_name: str, - account_name: str, - backup_vault_name: str, + location: str, **kwargs: Any - ) -> AsyncLROPoller[None]: ... + ) -> RegionInfoResource: ... - @overload - async def begin_update( + @distributed_trace + def list( self, - resource_group_name: str, - account_name: str, - backup_vault_name: str, - body: ElasticBackupVaultUpdate, - *, - content_type: str = "application/json", + location: str, **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupVault]: ... + ) -> AsyncItemPaged[RegionInfoResource]: ... - @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]: ... - @overload - async def begin_update( + class azure.mgmt.netapp.aio.operations.NetAppResourceUsagesOperations: + + def __init__( self, - resource_group_name: str, - account_name: str, - backup_vault_name: str, - body: IO[bytes], - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[ElasticBackupVault]: ... + *args, + **kwargs + ) -> 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', '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', '2026-06-15-preview']) async def get( self, - resource_group_name: str, - account_name: str, - backup_vault_name: str, + location: str, + usage_type: str, **kwargs: Any - ) -> ElasticBackupVault: ... + ) -> UsageResult: ... @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', '2026-06-15-preview']) - def list_by_elastic_account( + def list( self, - resource_group_name: str, - account_name: str, + location: str, **kwargs: Any - ) -> AsyncItemPaged[ElasticBackupVault]: ... + ) -> 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.ElasticBackupsOperations: + + class azure.mgmt.netapp.aio.operations.PoolsOperations: def __init__( self, @@ -1648,48 +1477,43 @@ namespace azure.mgmt.netapp.aio.operations self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: ElasticBackup, + pool_name: str, + body: CapacityPool, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackup]: ... + ) -> AsyncLROPoller[CapacityPool]: ... @overload async def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: ElasticBackup, + pool_name: str, + body: CapacityPool, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackup]: ... + ) -> AsyncLROPoller[CapacityPool]: ... @overload async def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackup]: ... + ) -> AsyncLROPoller[CapacityPool]: ... @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', '2026-06-15-preview']) async def begin_delete( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, **kwargs: Any ) -> AsyncLROPoller[None]: ... @@ -1698,63 +1522,56 @@ namespace azure.mgmt.netapp.aio.operations self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: ElasticBackup, + pool_name: str, + body: CapacityPoolPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackup]: ... + ) -> AsyncLROPoller[CapacityPool]: ... @overload async def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: ElasticBackup, + pool_name: str, + body: CapacityPoolPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackup]: ... + ) -> AsyncLROPoller[CapacityPool]: ... @overload async def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticBackup]: ... + ) -> AsyncLROPoller[CapacityPool]: ... @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', '2026-06-15-preview']) async def get( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, **kwargs: Any - ) -> ElasticBackup: ... + ) -> CapacityPool: ... @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', '2026-06-15-preview']) - def list_by_vault( + def list( self, resource_group_name: str, account_name: str, - backup_vault_name: str, **kwargs: Any - ) -> AsyncItemPaged[ElasticBackup]: ... + ) -> AsyncItemPaged[CapacityPool]: ... - class azure.mgmt.netapp.aio.operations.ElasticCapacityPoolsOperations: + class azure.mgmt.netapp.aio.operations.RansomwareReportsOperations: def __init__( self, @@ -1763,84 +1580,85 @@ namespace azure.mgmt.netapp.aio.operations ) -> None: ... @overload - async def begin_change_zone( + async def begin_clear_suspects( self, resource_group_name: str, account_name: str, pool_name: str, - body: ChangeZoneRequest, + volume_name: str, + ransomware_report_name: str, + body: RansomwareSuspectsClearRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticCapacityPool]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def begin_change_zone( + async def begin_clear_suspects( self, resource_group_name: str, account_name: str, pool_name: str, - body: ChangeZoneRequest, + volume_name: str, + ransomware_report_name: str, + body: RansomwareSuspectsClearRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticCapacityPool]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def begin_change_zone( + 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[ElasticCapacityPool]: ... + ) -> AsyncLROPoller[None]: ... - @overload - async def begin_create_or_update( + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + async def get( self, resource_group_name: str, account_name: str, pool_name: str, - body: ElasticCapacityPool, - *, - content_type: str = "application/json", + volume_name: str, + ransomware_report_name: str, **kwargs: Any - ) -> AsyncLROPoller[ElasticCapacityPool]: ... + ) -> RansomwareReport: ... - @overload - async def begin_create_or_update( + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + def list( self, resource_group_name: str, account_name: str, pool_name: str, - body: ElasticCapacityPool, - *, - content_type: str = "application/json", + volume_name: str, **kwargs: Any - ) -> AsyncLROPoller[ElasticCapacityPool]: ... + ) -> AsyncItemPaged[RansomwareReport]: ... - @overload - async def begin_create_or_update( + + class azure.mgmt.netapp.aio.operations.SnapshotPoliciesOperations: + + def __init__( self, - resource_group_name: str, - account_name: str, - pool_name: str, - body: IO[bytes], - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[ElasticCapacityPool]: ... + *args, + **kwargs + ) -> 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']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview', '2026-06-15-preview']) async def begin_delete( self, resource_group_name: str, account_name: str, - pool_name: str, + snapshot_policy_name: str, **kwargs: Any ) -> AsyncLROPoller[None]: ... @@ -1849,94 +1667,101 @@ namespace azure.mgmt.netapp.aio.operations self, resource_group_name: str, account_name: str, - pool_name: str, - body: ElasticCapacityPoolUpdate, + snapshot_policy_name: str, + body: SnapshotPolicyPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticCapacityPool]: ... + ) -> AsyncLROPoller[SnapshotPolicy]: ... @overload async def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, - body: ElasticCapacityPoolUpdate, + snapshot_policy_name: str, + body: SnapshotPolicyPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticCapacityPool]: ... + ) -> AsyncLROPoller[SnapshotPolicy]: ... @overload async def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, + snapshot_policy_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticCapacityPool]: ... + ) -> AsyncLROPoller[SnapshotPolicy]: ... @overload - async def check_volume_file_path_availability( + async def create( self, resource_group_name: str, account_name: str, - pool_name: str, - body: CheckElasticVolumeFilePathAvailabilityRequest, + snapshot_policy_name: str, + body: SnapshotPolicy, *, content_type: str = "application/json", **kwargs: Any - ) -> CheckElasticResourceAvailabilityResponse: ... + ) -> SnapshotPolicy: ... @overload - async def check_volume_file_path_availability( + async def create( self, resource_group_name: str, account_name: str, - pool_name: str, - body: CheckElasticVolumeFilePathAvailabilityRequest, + snapshot_policy_name: str, + body: SnapshotPolicy, *, content_type: str = "application/json", **kwargs: Any - ) -> CheckElasticResourceAvailabilityResponse: ... + ) -> SnapshotPolicy: ... @overload - async def check_volume_file_path_availability( + async def create( self, resource_group_name: str, account_name: str, - pool_name: str, + snapshot_policy_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> CheckElasticResourceAvailabilityResponse: ... + ) -> SnapshotPolicy: ... @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', '2026-06-15-preview']) async def get( self, resource_group_name: str, account_name: str, - pool_name: str, + snapshot_policy_name: str, **kwargs: Any - ) -> ElasticCapacityPool: ... + ) -> SnapshotPolicy: ... @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', '2026-06-15-preview']) - def list_by_elastic_account( + def list( self, resource_group_name: str, account_name: str, **kwargs: Any - ) -> AsyncItemPaged[ElasticCapacityPool]: ... + ) -> 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.ElasticSnapshotPoliciesOperations: + class azure.mgmt.netapp.aio.operations.SnapshotsOperations: def __init__( self, @@ -1945,118 +1770,165 @@ namespace azure.mgmt.netapp.aio.operations ) -> None: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: ElasticSnapshotPolicy, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: Snapshot, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ... + ) -> AsyncLROPoller[Snapshot]: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: ElasticSnapshotPolicy, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: Snapshot, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ... + ) -> AsyncLROPoller[Snapshot]: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ... + ) -> AsyncLROPoller[Snapshot]: ... @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', '2026-06-15-preview']) async def begin_delete( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, **kwargs: Any ) -> AsyncLROPoller[None]: ... @overload - async def begin_update( + async def begin_restore_files( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: ElasticSnapshotPolicyUpdate, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: SnapshotRestoreFiles, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def begin_update( + async def begin_restore_files( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: ElasticSnapshotPolicyUpdate, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: SnapshotRestoreFiles, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def begin_update( + async def begin_restore_files( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshotPolicy]: ... + ) -> 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', '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', '2026-06-15-preview']) - async def get( + @overload + async def begin_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: SnapshotPatch, + *, + content_type: str = "application/json", **kwargs: Any - ) -> ElasticSnapshotPolicy: ... + ) -> AsyncLROPoller[Snapshot]: ... - @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', '2026-06-15-preview']) - def list_by_elastic_account( + @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 + ) -> 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]: ... + + @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 - ) -> AsyncItemPaged[ElasticSnapshotPolicy]: ... + ) -> Snapshot: ... @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', '2026-06-15-preview']) - def list_elastic_volumes( + def list( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> AsyncItemPaged[ElasticVolume]: ... + ) -> AsyncItemPaged[Snapshot]: ... - class azure.mgmt.netapp.aio.operations.ElasticSnapshotsOperations: + class azure.mgmt.netapp.aio.operations.SubvolumesOperations: def __init__( self, @@ -2065,84 +1937,134 @@ namespace azure.mgmt.netapp.aio.operations ) -> None: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, - body: ElasticSnapshot, + subvolume_name: str, + body: SubvolumeInfo, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshot]: ... + ) -> AsyncLROPoller[SubvolumeInfo]: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, - body: ElasticSnapshot, + subvolume_name: str, + body: SubvolumeInfo, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshot]: ... + ) -> AsyncLROPoller[SubvolumeInfo]: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, + subvolume_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticSnapshot]: ... + ) -> 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']}, api_versions_list=['2025-12-15-preview', '2026-01-15-preview', '2026-03-15-preview', '2026-04-15-preview', '2026-05-15-preview', '2026-06-15-preview']) async def begin_delete( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, + subvolume_name: str, **kwargs: Any ) -> 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', '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', '2026-06-15-preview']) + 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 async def get( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, + subvolume_name: str, **kwargs: Any - ) -> ElasticSnapshot: ... + ) -> SubvolumeInfo: ... @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', '2026-06-15-preview']) - def list_by_elastic_volume( + def list_by_volume( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any - ) -> AsyncItemPaged[ElasticSnapshot]: ... + ) -> AsyncItemPaged[SubvolumeInfo]: ... - class azure.mgmt.netapp.aio.operations.ElasticVolumesOperations: + class azure.mgmt.netapp.aio.operations.VolumeGroupsOperations: def __init__( self, @@ -2151,93 +2073,128 @@ namespace azure.mgmt.netapp.aio.operations ) -> None: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, - pool_name: str, - volume_name: str, - body: ElasticVolume, + volume_group_name: str, + body: VolumeGroupDetails, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticVolume]: ... + ) -> AsyncLROPoller[VolumeGroupDetails]: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, - pool_name: str, - volume_name: str, - body: ElasticVolume, + volume_group_name: str, + body: VolumeGroupDetails, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticVolume]: ... + ) -> AsyncLROPoller[VolumeGroupDetails]: ... @overload - async def begin_create_or_update( + async def begin_create( self, resource_group_name: str, account_name: str, - pool_name: str, - volume_name: str, + volume_group_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticVolume]: ... + ) -> AsyncLROPoller[VolumeGroupDetails]: ... @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', '2026-06-15-preview']) async def begin_delete( self, resource_group_name: str, account_name: str, - pool_name: str, - volume_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: ... + + @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_revert( + async def begin_create( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: ElasticVolumeRevert, + volume_quota_rule_name: str, + body: VolumeQuotaRule, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticVolume]: ... + ) -> AsyncLROPoller[VolumeQuotaRule]: ... @overload - async def begin_revert( + async def begin_create( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: ElasticVolumeRevert, + volume_quota_rule_name: str, + body: VolumeQuotaRule, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticVolume]: ... + ) -> AsyncLROPoller[VolumeQuotaRule]: ... @overload - async def begin_revert( + 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[ElasticVolume]: ... + ) -> 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]: ... @overload async def begin_update( @@ -2246,11 +2203,12 @@ namespace azure.mgmt.netapp.aio.operations account_name: str, pool_name: str, volume_name: str, - body: ElasticVolumeUpdate, + volume_quota_rule_name: str, + body: VolumeQuotaRulePatch, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticVolume]: ... + ) -> AsyncLROPoller[VolumeQuotaRule]: ... @overload async def begin_update( @@ -2259,11 +2217,12 @@ namespace azure.mgmt.netapp.aio.operations account_name: str, pool_name: str, volume_name: str, - body: ElasticVolumeUpdate, + volume_quota_rule_name: str, + body: VolumeQuotaRulePatch, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[ElasticVolume]: ... + ) -> AsyncLROPoller[VolumeQuotaRule]: ... @overload async def begin_update( @@ -2272,35 +2231,36 @@ 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[ElasticVolume]: ... + ) -> AsyncLROPoller[VolumeQuotaRule]: ... @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', '2026-06-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 - ) -> ElasticVolume: ... + ) -> VolumeQuotaRule: ... @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', '2026-06-15-preview']) - def list_by_elastic_pool( + def list_by_volume( self, resource_group_name: str, account_name: str, pool_name: str, + volume_name: str, **kwargs: Any - ) -> AsyncItemPaged[ElasticVolume]: ... + ) -> AsyncItemPaged[VolumeQuotaRule]: ... - class azure.mgmt.netapp.aio.operations.NetAppResourceOperations: + class azure.mgmt.netapp.aio.operations.VolumesOperations: def __init__( self, @@ -2308,3935 +2268,3774 @@ namespace azure.mgmt.netapp.aio.operations **kwargs ) -> None: ... - @overload - async def begin_update_network_sibling_set( + @distributed_trace_async + async def begin_authorize_external_replication( self, - location: str, - body: UpdateNetworkSiblingSetRequest, - *, - content_type: str = "application/json", + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> AsyncLROPoller[NetworkSiblingSet]: ... + ) -> AsyncLROPoller[SvmPeerCommandResponse]: ... @overload - async def begin_update_network_sibling_set( + async def begin_authorize_replication( self, - location: str, - body: UpdateNetworkSiblingSetRequest, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: AuthorizeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[NetworkSiblingSet]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def begin_update_network_sibling_set( + async def begin_authorize_replication( self, - location: str, - body: IO[bytes], + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: AuthorizeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[NetworkSiblingSet]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def check_file_path_availability( + async def begin_authorize_replication( self, - location: str, - body: FilePathAvailabilityRequest, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[None]: ... @overload - async def check_file_path_availability( + async def begin_break_file_locks( self, - location: str, - body: FilePathAvailabilityRequest, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: Optional[BreakFileLocksRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[None]: ... @overload - async def check_file_path_availability( + async def begin_break_file_locks( self, - location: str, - body: IO[bytes], + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: Optional[BreakFileLocksRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[None]: ... @overload - async def check_name_availability( + async def begin_break_file_locks( self, - location: str, - body: ResourceNameAvailabilityRequest, + 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 - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[None]: ... @overload - async def check_name_availability( + async def begin_break_replication( self, - location: str, - body: ResourceNameAvailabilityRequest, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: Optional[BreakReplicationRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[None]: ... @overload - async def check_name_availability( + async def begin_break_replication( self, - location: str, - body: IO[bytes], + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: Optional[BreakReplicationRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[None]: ... @overload - async def check_quota_availability( + async def begin_break_replication( self, - location: str, - body: QuotaAvailabilityRequest, + 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 - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[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, + pool_name: str, + volume_name: str, + body: Volume, *, content_type: str = "application/json", **kwargs: Any - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[Volume]: ... @overload - async def check_quota_availability( + async def begin_create_or_update( self, - location: str, - body: IO[bytes], + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: Volume, *, content_type: str = "application/json", **kwargs: Any - ) -> CheckAvailabilityResponse: ... + ) -> AsyncLROPoller[Volume]: ... @overload - async def query_network_sibling_set( + async def begin_create_or_update( self, - location: str, - body: QueryNetworkSiblingSetRequest, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> NetworkSiblingSet: ... + ) -> AsyncLROPoller[Volume]: ... - @overload - async def query_network_sibling_set( + @distributed_trace_async + async def begin_delete( self, - location: str, - body: QueryNetworkSiblingSetRequest, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, *, - content_type: str = "application/json", + force_delete: Optional[bool] = ..., **kwargs: Any - ) -> NetworkSiblingSet: ... + ) -> AsyncLROPoller[None]: ... - @overload - async def query_network_sibling_set( + @distributed_trace_async + async def begin_delete_replication( self, - location: str, - body: IO[bytes], - *, - content_type: str = "application/json", + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> NetworkSiblingSet: ... + ) -> AsyncLROPoller[None]: ... @distributed_trace_async - async def query_region_info( + async def begin_finalize_external_replication( self, - location: str, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> RegionInfo: ... - - - class azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsAccountOperations: - - def __init__( - self, - *args, - **kwargs - ) -> None: ... + ) -> AsyncLROPoller[None]: ... @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', '2026-06-01', '2026-06-15-preview']) - async def get( + async def begin_finalize_relocation( self, resource_group_name: str, account_name: str, - quota_limit_name: str, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> QuotaItem: ... + ) -> AsyncLROPoller[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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) - def list( + @overload + 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, + *, + content_type: str = "application/json", **kwargs: Any - ) -> AsyncItemPaged[QuotaItem]: ... - - - class azure.mgmt.netapp.aio.operations.NetAppResourceQuotaLimitsOperations: + ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ... - def __init__( + @overload + async def begin_list_get_group_id_list_for_ldap_user( self, - *args, - **kwargs - ) -> None: ... + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: GetGroupIdListForLDAPUserRequest, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ... - @distributed_trace_async - async def get( + @overload + async def begin_list_get_group_id_list_for_ldap_user( self, - location: str, - quota_limit_name: str, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: IO[bytes], + *, + content_type: str = "application/json", **kwargs: Any - ) -> QuotaItem: ... + ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ... - @distributed_trace - def list( + @overload + async def begin_list_quota_report( self, - location: str, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: Optional[QuotaReportFilterRequest] = None, + *, + content_type: str = "application/json", **kwargs: Any - ) -> AsyncItemPaged[QuotaItem]: ... - - - class azure.mgmt.netapp.aio.operations.NetAppResourceRegionInfosOperations: + ) -> AsyncLROPoller[ListQuotaReportResult]: ... - def __init__( + @overload + async def begin_list_quota_report( self, - *args, - **kwargs - ) -> None: ... + 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]: ... - @distributed_trace_async - async def get( + @overload + async def begin_list_quota_report( self, - location: str, - **kwargs: Any - ) -> 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, + 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[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: ... + ) -> AsyncLROPoller[ListQuotaReportResult]: ... @overload - async def begin_create_or_update( + async def begin_peer_external_cluster( self, resource_group_name: str, account_name: str, pool_name: str, - body: CapacityPool, + volume_name: str, + body: PeerClusterForVolumeMigrationRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[CapacityPool]: ... + ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ... @overload - async def begin_create_or_update( + async def begin_peer_external_cluster( self, resource_group_name: str, account_name: str, pool_name: str, - body: CapacityPool, + volume_name: str, + body: PeerClusterForVolumeMigrationRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[CapacityPool]: ... + ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ... @overload - async def begin_create_or_update( + 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[CapacityPool]: ... + ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ... @distributed_trace_async - async def begin_delete( + 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 - async def begin_update( + async def begin_pool_change( self, resource_group_name: str, account_name: str, pool_name: str, - body: CapacityPoolPatch, + volume_name: str, + body: PoolChangeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[CapacityPool]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def begin_update( + async def begin_pool_change( self, resource_group_name: str, account_name: str, pool_name: str, - body: CapacityPoolPatch, + volume_name: str, + body: PoolChangeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[CapacityPool]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def begin_update( + 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[CapacityPool]: ... + ) -> AsyncLROPoller[None]: ... @distributed_trace_async - async def get( + async def begin_populate_availability_zone( self, resource_group_name: str, account_name: str, pool_name: str, + volume_name: str, **kwargs: Any - ) -> CapacityPool: ... + ) -> AsyncLROPoller[Volume]: ... - @distributed_trace - def list( + @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 - ) -> AsyncItemPaged[CapacityPool]: ... - - - class azure.mgmt.netapp.aio.operations.RansomwareReportsOperations: - - def __init__( - self, - *args, - **kwargs - ) -> None: ... + ) -> AsyncLROPoller[None]: ... @overload - async def begin_clear_suspects( + async def begin_reestablish_replication( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - ransomware_report_name: str, - body: RansomwareSuspectsClearRequest, + body: ReestablishReplicationRequest, *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: ... @overload - async def begin_clear_suspects( + async def begin_reestablish_replication( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - ransomware_report_name: str, - body: RansomwareSuspectsClearRequest, + body: ReestablishReplicationRequest, *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: ... @overload - async def begin_clear_suspects( + async def begin_reestablish_replication( 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]: ... - @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', '2026-06-01', '2026-06-15-preview']) - async def get( + @overload + async def begin_relocate( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - ransomware_report_name: str, + body: Optional[RelocateVolumeRequest] = None, + *, + content_type: str = "application/json", **kwargs: Any - ) -> RansomwareReport: ... + ) -> AsyncLROPoller[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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview']) - def list( + @overload + async def begin_relocate( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - **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, + body: Optional[RelocateVolumeRequest] = None, + *, + content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: ... @overload - async def begin_update( + async def begin_relocate( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: SnapshotPolicyPatch, + pool_name: str, + volume_name: str, + body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[SnapshotPolicy]: ... + ) -> AsyncLROPoller[None]: ... - @overload - async def begin_update( + @distributed_trace_async + async def begin_reset_cifs_password( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: SnapshotPolicyPatch, - *, - content_type: str = "application/json", + pool_name: str, + volume_name: str, **kwargs: Any - ) -> AsyncLROPoller[SnapshotPolicy]: ... + ) -> AsyncLROPoller[None]: ... - @overload - async def begin_update( + @distributed_trace_async + async def begin_resync_replication( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: IO[bytes], - *, - content_type: str = "application/json", + pool_name: str, + volume_name: str, **kwargs: Any - ) -> AsyncLROPoller[SnapshotPolicy]: ... + ) -> AsyncLROPoller[None]: ... @overload - async def create( + async def begin_revert( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: SnapshotPolicy, + pool_name: str, + volume_name: str, + body: VolumeRevert, *, content_type: str = "application/json", **kwargs: Any - ) -> SnapshotPolicy: ... + ) -> AsyncLROPoller[None]: ... @overload - async def create( + async def begin_revert( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: SnapshotPolicy, + pool_name: str, + volume_name: str, + body: VolumeRevert, *, content_type: str = "application/json", **kwargs: Any - ) -> SnapshotPolicy: ... + ) -> AsyncLROPoller[None]: ... @overload - async def create( + async def begin_revert( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + pool_name: str, + volume_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> SnapshotPolicy: ... + ) -> AsyncLROPoller[None]: ... @distributed_trace_async - async def get( + async def begin_revert_relocation( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> SnapshotPolicy: ... + ) -> AsyncLROPoller[None]: ... - @distributed_trace - def list( + @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 - ) -> AsyncItemPaged[SnapshotPolicy]: ... + ) -> AsyncLROPoller[Volume]: ... - @distributed_trace_async - async def list_volumes( + @overload + async def begin_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + pool_name: str, + volume_name: str, + body: VolumePatch, + *, + content_type: str = "application/json", **kwargs: Any - ) -> SnapshotPolicyVolumeList: ... - - - class azure.mgmt.netapp.aio.operations.SnapshotsOperations: - - def __init__( - self, - *args, - **kwargs - ) -> None: ... - - @overload - async 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 - ) -> AsyncLROPoller[Snapshot]: ... + ) -> AsyncLROPoller[Volume]: ... @overload - async def begin_create( + async def begin_update( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, - body: Snapshot, + body: VolumePatch, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[Snapshot]: ... + ) -> AsyncLROPoller[Volume]: ... @overload - async def begin_create( + 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]: ... + ) -> AsyncLROPoller[Volume]: ... @distributed_trace_async - async def begin_delete( + async def get( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, **kwargs: Any - ) -> AsyncLROPoller[None]: ... + ) -> Volume: ... - @overload - async def begin_restore_files( + @distributed_trace + def list( 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]: ... + ) -> AsyncItemPaged[Volume]: ... @overload - async def begin_restore_files( + def list_replications( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, - body: SnapshotRestoreFiles, + body: Optional[ListReplicationsRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: ... + ) -> AsyncItemPaged[Replication]: ... @overload - async def begin_restore_files( + def list_replications( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, - body: IO[bytes], + body: Optional[ListReplicationsRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: ... + ) -> AsyncItemPaged[Replication]: ... @overload - async def begin_update( + def list_replications( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, - body: SnapshotPatch, + body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[Snapshot]: ... + ) -> AsyncItemPaged[Replication]: ... - @overload - async def begin_update( + @distributed_trace_async + async def replication_status( 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 - ) -> AsyncLROPoller[Snapshot]: ... + ) -> ReplicationStatus: ... - @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]: ... - @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: ... +namespace azure.mgmt.netapp.models - @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.AcceptGrowCapacityPoolForShortTermCloneSplit(str, Enum, metaclass=CaseInsensitiveEnumMeta): + ACCEPTED = "Accepted" + DECLINED = "Declined" - class azure.mgmt.netapp.aio.operations.SubvolumesOperations: + 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, - *args, - **kwargs + *, + identity: Optional[EncryptionIdentity] = ..., + key_source: Optional[Union[str, KeySource]] = ..., + key_vault_properties: Optional[KeyVaultProperties] = ... ) -> None: ... @overload - 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]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + class azure.mgmt.netapp.models.AccountEncryptionPatch(_Model): + identity: Optional[EncryptionIdentityPatch] + key_source: Optional[Union[str, KeySource]] + key_vault_properties: Optional[KeyVaultPropertiesPatch] @overload - async 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 - ) -> AsyncLROPoller[SubvolumeInfo]: ... + identity: Optional[EncryptionIdentityPatch] = ..., + key_source: Optional[Union[str, KeySource]] = ..., + key_vault_properties: Optional[KeyVaultPropertiesPatch] = ... + ) -> None: ... @overload - 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]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - @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]: ... - @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]: ... + class azure.mgmt.netapp.models.AccountProperties(_Model): + active_directories: Optional[list[ActiveDirectory]] + disable_showmount: Optional[bool] + encryption: Optional[AccountEncryption] + ldap_configuration: Optional[LdapConfiguration] + multi_ad_status: Optional[Union[str, MultiAdStatus]] + nfs_v4_id_domain: Optional[str] + provisioning_state: Optional[str] @overload - async 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 - ) -> AsyncLROPoller[SubvolumeInfo]: ... + active_directories: Optional[list[ActiveDirectory]] = ..., + encryption: Optional[AccountEncryption] = ..., + ldap_configuration: Optional[LdapConfiguration] = ..., + nfs_v4_id_domain: Optional[str] = ... + ) -> None: ... @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]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + class azure.mgmt.netapp.models.AccountPropertiesPatch(_Model): + active_directories: Optional[list[ActiveDirectoryPatch]] + encryption: Optional[AccountEncryptionPatch] + ldap_configuration: Optional[LdapConfigurationPatch] + nfs_v4_id_domain: Optional[str] @overload - async 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 - ) -> AsyncLROPoller[SubvolumeInfo]: ... + active_directories: Optional[list[ActiveDirectoryPatch]] = ..., + encryption: Optional[AccountEncryptionPatch] = ..., + ldap_configuration: Optional[LdapConfigurationPatch] = ..., + nfs_v4_id_domain: Optional[str] = ... + ) -> None: ... - @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: ... - - @distributed_trace - def list_by_volume( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - **kwargs: Any - ) -> AsyncItemPaged[SubvolumeInfo]: ... + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.aio.operations.VolumeGroupsOperations: + 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, - *args, - **kwargs + *, + 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 - 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]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + class azure.mgmt.netapp.models.ActiveDirectoryPatch(_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] + username: Optional[str] @overload - async 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 - ) -> AsyncLROPoller[VolumeGroupDetails]: ... + 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 - 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 __init__(self, mapping: Mapping[str, Any]) -> None: ... - @distributed_trace_async - async def begin_delete( - self, - 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.ActiveDirectoryStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): + CREATED = "Created" + DELETED = "Deleted" + ERROR = "Error" + IN_USE = "InUse" + UPDATING = "Updating" - @distributed_trace - def list_by_net_app_account( - self, - resource_group_name: str, - account_name: str, - **kwargs: Any - ) -> AsyncItemPaged[VolumeGroup]: ... + + class azure.mgmt.netapp.models.ActualRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DISABLED = "Disabled" + ENABLED = "Enabled" + LEARNING = "Learning" + PAUSED = "Paused" - class azure.mgmt.netapp.aio.operations.VolumeQuotaRulesOperations: + 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, - *args, - **kwargs + *, + remote_volume_resource_id: Optional[str] = ... ) -> None: ... @overload - 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, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[VolumeQuotaRule]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + class azure.mgmt.netapp.models.AvsDataStore(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DISABLED = "Disabled" + ENABLED = "Enabled" + + + class azure.mgmt.netapp.models.AzureKeyVaultDetails(_Model): + certificate_akv_details: Optional[CertificateAkvDetails] + credentials_akv_details: Optional[CredentialsAkvDetails] @overload - async 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 - ) -> AsyncLROPoller[VolumeQuotaRule]: ... + certificate_akv_details: Optional[CertificateAkvDetails] = ..., + credentials_akv_details: Optional[CredentialsAkvDetails] = ... + ) -> None: ... @overload - async def begin_create( + 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: ... + + @overload + 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 - ) -> AsyncLROPoller[VolumeQuotaRule]: ... + properties: BackupProperties + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... - @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]: ... + + class azure.mgmt.netapp.models.BackupPatch(_Model): + properties: Optional[BackupPatchProperties] + + def __getattr__(self, name: str) -> Any: ... @overload - async 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 - ) -> AsyncLROPoller[VolumeQuotaRule]: ... + properties: Optional[BackupPatchProperties] = ... + ) -> None: ... @overload - async def begin_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, - volume_quota_rule_name: str, - body: VolumeQuotaRulePatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[VolumeQuotaRule]: ... + key: str, + value: Any + ) -> None: ... + + + class azure.mgmt.netapp.models.BackupPatchProperties(_Model): + label: Optional[str] @overload - async 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 - ) -> AsyncLROPoller[VolumeQuotaRule]: ... + label: Optional[str] = ... + ) -> 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: ... + @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 - ) -> AsyncItemPaged[VolumeQuotaRule]: ... + 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 - class azure.mgmt.netapp.aio.operations.VolumesOperations: + def __getattr__(self, name: str) -> Any: ... + @overload def __init__( self, - *args, - **kwargs + *, + location: str, + properties: BackupPolicyProperties, + tags: Optional[dict[str, str]] = ... ) -> None: ... - @distributed_trace_async - async def begin_authorize_external_replication( + @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 - ) -> AsyncLROPoller[SvmPeerCommandResponse]: ... + 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: ... @overload - async 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 - ) -> AsyncLROPoller[None]: ... + location: Optional[str] = ..., + properties: Optional[BackupPolicyProperties] = ..., + tags: Optional[dict[str, str]] = ... + ) -> None: ... @overload - async 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 - ) -> AsyncLROPoller[None]: ... + key: str, + value: Any + ) -> None: ... + + + 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 - async 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 - ) -> AsyncLROPoller[None]: ... + daily_backups_to_keep: Optional[int] = ..., + enabled: Optional[bool] = ..., + monthly_backups_to_keep: Optional[int] = ..., + weekly_backups_to_keep: Optional[int] = ... + ) -> None: ... @overload - async 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 - ) -> AsyncLROPoller[None]: ... + 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 @overload - async 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 - ) -> AsyncLROPoller[None]: ... + label: Optional[str] = ..., + snapshot_name: Optional[str] = ..., + use_existing_snapshot: Optional[bool] = ..., + volume_resource_id: str + ) -> None: ... @overload - async def begin_break_file_locks( + 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] + + @overload + 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 - ) -> AsyncLROPoller[None]: ... + destination_volume_id: str, + file_list: list[str], + restore_file_path: Optional[str] = ... + ) -> None: ... @overload - 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]: ... + 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: ... @overload - async 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 - ) -> AsyncLROPoller[None]: ... + location: str, + properties: Optional[BackupVaultProperties] = ..., + tags: Optional[dict[str, str]] = ... + ) -> None: ... @overload - async def begin_break_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: Optional[IO[bytes]] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: ... + key: str, + value: Any + ) -> None: ... + + + class azure.mgmt.netapp.models.BackupVaultPatch(_Model): + tags: Optional[dict[str, str]] @overload - async 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 - ) -> AsyncLROPoller[Volume]: ... + tags: Optional[dict[str, str]] = ... + ) -> None: ... @overload - 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]: ... + 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 @overload - async 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 - ) -> AsyncLROPoller[Volume]: ... + backup_vault_id: str + ) -> None: ... - @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]: ... + @overload + def __init__(self, mapping: Mapping[str, Any]) -> 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]: ... - @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]: ... + class azure.mgmt.netapp.models.BindAuthenticationLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta): + ANONYMOUS = "Anonymous" + SIMPLE = "Simple" - @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]: ... + + class azure.mgmt.netapp.models.BindPasswordAkvConfig(_Model): + azure_key_vault_uri: str + secret_name: str + user_assigned_identity: Optional[str] @overload - async 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 - ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ... + azure_key_vault_uri: str, + secret_name: str, + user_assigned_identity: Optional[str] = ... + ) -> None: ... @overload - 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, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + class azure.mgmt.netapp.models.BindPasswordAkvConfigPatch(_Model): + azure_key_vault_uri: Optional[str] + secret_name: Optional[str] + user_assigned_identity: Optional[str] @overload - async 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 - ) -> AsyncLROPoller[GetGroupIdListForLDAPUserResponse]: ... + azure_key_vault_uri: Optional[str] = ..., + secret_name: Optional[str] = ..., + user_assigned_identity: Optional[str] = ... + ) -> None: ... @overload - async def begin_list_quota_report( + 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] + + @overload + 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 - ) -> AsyncLROPoller[ListQuotaReportResult]: ... + client_ip: Optional[str] = ..., + confirm_running_disruptive_operation: Optional[bool] = ... + ) -> None: ... @overload - async def begin_list_quota_report( + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + class azure.mgmt.netapp.models.BreakReplicationRequest(_Model): + force_break_replication: Optional[bool] + + @overload + 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 - ) -> AsyncLROPoller[ListQuotaReportResult]: ... + force_break_replication: Optional[bool] = ... + ) -> None: ... @overload - async 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 - ) -> AsyncLROPoller[ListQuotaReportResult]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - @overload - async 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 - ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ... + + class azure.mgmt.netapp.models.BreakthroughMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DISABLED = "Disabled" + ENABLED = "Enabled" + + + class azure.mgmt.netapp.models.Bucket(ProxyResource): + id: str + name: str + properties: Optional[BucketProperties] + system_data: SystemData + type: str + + def __getattr__(self, name: str) -> Any: ... @overload - async 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 - ) -> AsyncLROPoller[ClusterPeerCommandResponse]: ... + properties: Optional[BucketProperties] = ... + ) -> None: ... @overload - 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]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - @distributed_trace_async - async def begin_perform_replication_transfer( + def __setattr__( self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - **kwargs: Any - ) -> AsyncLROPoller[None]: ... + key: str, + value: Any + ) -> None: ... + + + class azure.mgmt.netapp.models.BucketCredentialsExpiry(_Model): + key_pair_expiry_days: Optional[int] @overload - async 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 - ) -> AsyncLROPoller[None]: ... + key_pair_expiry_days: Optional[int] = ... + ) -> None: ... @overload - async 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 - ) -> AsyncLROPoller[None]: ... + 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: ... @overload - async def begin_pool_change( + 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[None]: ... + properties: Optional[BucketPatchProperties] = ... + ) -> 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]: ... + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - @distributed_trace_async - async def begin_re_initialize_replication( + def __setattr__( self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - **kwargs: Any - ) -> AsyncLROPoller[None]: ... + 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] @overload - async 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 - ) -> AsyncLROPoller[None]: ... + akv_details: Optional[AzureKeyVaultDetails] = ..., + file_system_user: Optional[FileSystemUser] = ..., + permissions: Optional[Union[str, BucketPatchPermissions]] = ..., + server: Optional[BucketServerPatchProperties] = ... + ) -> None: ... @overload - async 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 - ) -> AsyncLROPoller[None]: ... + 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 - async def begin_reestablish_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 - ) -> AsyncLROPoller[None]: ... + akv_details: Optional[AzureKeyVaultDetails] = ..., + file_system_user: Optional[FileSystemUser] = ..., + path: Optional[str] = ..., + permissions: Optional[Union[str, BucketPermissions]] = ..., + server: Optional[BucketServerProperties] = ... + ) -> None: ... @overload - async 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 - ) -> AsyncLROPoller[None]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + class azure.mgmt.netapp.models.BucketServerPatchProperties(_Model): + certificate_object: Optional[str] + fqdn: Optional[str] + on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] @overload - async def begin_relocate( + 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 - ) -> AsyncLROPoller[None]: ... + certificate_object: Optional[str] = ..., + fqdn: Optional[str] = ..., + on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] = ... + ) -> None: ... @overload - 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]: ... + def __init__(self, mapping: Mapping[str, Any]) -> 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]: ... - @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]: ... + 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]] @overload - async def begin_revert( + def __init__( self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - body: VolumeRevert, *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[None]: ... + certificate_object: Optional[str] = ..., + fqdn: Optional[str] = ..., + on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] = ... + ) -> None: ... @overload - async 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 - ) -> AsyncLROPoller[None]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + 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 - async def begin_revert( + 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[None]: ... + location: str, + properties: CacheProperties, + tags: Optional[dict[str, str]] = ..., + zones: Optional[list[str]] = ... + ) -> None: ... - @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]: ... + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - @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]: ... + + 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]] @overload - async def begin_update( + def __init__( self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - body: VolumePatch, *, - content_type: str = "application/json", - **kwargs: Any - ) -> AsyncLROPoller[Volume]: ... + 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 - async 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 - ) -> AsyncLROPoller[Volume]: ... + def __init__(self, mapping: Mapping[str, Any]) -> None: ... + + + class azure.mgmt.netapp.models.CachePropertiesExportPolicy(_Model): + rules: Optional[list[ExportPolicyRule]] @overload - async def begin_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 - ) -> AsyncLROPoller[Volume]: ... + rules: Optional[list[ExportPolicyRule]] = ... + ) -> None: ... - @distributed_trace_async - async def get( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - **kwargs: Any - ) -> Volume: ... + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - @distributed_trace - def list( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - **kwargs: Any - ) -> AsyncItemPaged[Volume]: ... + + 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 list_replications( + def __init__( 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 - ) -> AsyncItemPaged[Replication]: ... + properties: Optional[CacheUpdateProperties] = ..., + tags: Optional[dict[str, str]] = ... + ) -> None: ... @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 - ) -> AsyncItemPaged[Replication]: ... + def __init__(self, mapping: Mapping[str, Any]) -> 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]] @overload - def list_replications( + 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 - ) -> 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: ... - + 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: ... -namespace azure.mgmt.netapp.models + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.AcceptGrowCapacityPoolForShortTermCloneSplit(str, Enum, metaclass=CaseInsensitiveEnumMeta): - ACCEPTED = "Accepted" - DECLINED = "Declined" + 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 - class azure.mgmt.netapp.models.AccountEncryption(_Model): - identity: Optional[EncryptionIdentity] - key_source: Optional[Union[str, KeySource]] - key_vault_properties: Optional[KeyVaultProperties] + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - identity: Optional[EncryptionIdentity] = ..., - key_source: Optional[Union[str, KeySource]] = ..., - key_vault_properties: Optional[KeyVaultProperties] = ... + 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.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] + 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, *, - active_directories: Optional[list[ActiveDirectory]] = ..., - encryption: Optional[AccountEncryption] = ..., - entra_id_config: Optional[EntraIdConfig] = ..., - ldap_configuration: Optional[LdapConfiguration] = ..., - nfs_v4_id_domain: Optional[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.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] + class azure.mgmt.netapp.models.CertificateAkvDetails(_Model): + certificate_key_vault_uri: Optional[str] + certificate_name: Optional[str] @overload def __init__( self, *, - active_directories: Optional[list[ActiveDirectory]] = ..., - encryption: Optional[AccountEncryption] = ..., - entra_id_config: Optional[EntraIdConfigPatch] = ..., - ldap_configuration: Optional[LdapConfigurationPatch] = ..., - nfs_v4_id_domain: Optional[str] = ... + certificate_key_vault_uri: Optional[str] = ..., + certificate_name: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> 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] + 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, *, - 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] = ... + 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.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 + class azure.mgmt.netapp.models.CheckAvailabilityResponse(_Model): + is_available: Optional[bool] + message: Optional[str] + reason: Optional[Union[str, InAvailabilityReasonType]] @overload def __init__( self, *, - identity: Optional[ManagedServiceIdentity] = ..., - location: str, - properties: Optional[ActiveDirectoryConfigProperties] = ..., - tags: Optional[dict[str, 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.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] + 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" + + + 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, *, - 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] = ... + username: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ActiveDirectoryConfigUpdate(_Model): - identity: Optional[ManagedServiceIdentity] - properties: Optional[ActiveDirectoryConfigUpdateProperties] - tags: Optional[dict[str, str]] + class azure.mgmt.netapp.models.ClusterPeerCommandResponse(_Model): + properties: Optional[ClusterPeerCommandResponseProperties] @overload def __init__( self, *, - identity: Optional[ManagedServiceIdentity] = ..., - properties: Optional[ActiveDirectoryConfigUpdateProperties] = ..., - tags: Optional[dict[str, str]] = ... + properties: Optional[ClusterPeerCommandResponseProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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] + class azure.mgmt.netapp.models.ClusterPeerCommandResponseProperties(_Model): + cluster_peering_command: Optional[str] + passphrase: Optional[str] @overload def __init__( self, *, - 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] = ... + cluster_peering_command: Optional[str] = ..., + passphrase: 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.CoolAccessRetrievalPolicy(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DEFAULT = "Default" + NEVER = "Never" + ON_READ = "OnRead" - class azure.mgmt.netapp.models.ActualRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DISABLED = "Disabled" - ENABLED = "Enabled" - LEARNING = "Learning" - PAUSED = "Paused" + class azure.mgmt.netapp.models.CoolAccessTieringPolicy(str, Enum, metaclass=CaseInsensitiveEnumMeta): + AUTO = "Auto" + SNAPSHOT_ONLY = "SnapshotOnly" - class azure.mgmt.netapp.models.ApplicationType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - ORACLE = "ORACLE" - SAP_HANA = "SAP-HANA" + class azure.mgmt.netapp.models.CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + APPLICATION = "Application" + KEY = "Key" + MANAGED_IDENTITY = "ManagedIdentity" + USER = "User" - class azure.mgmt.netapp.models.AuthorizeRequest(_Model): - remote_volume_resource_id: Optional[str] + class azure.mgmt.netapp.models.CredentialsAkvDetails(_Model): + credentials_key_vault_uri: Optional[str] + secret_name: Optional[str] @overload def __init__( self, *, - remote_volume_resource_id: Optional[str] = ... + credentials_key_vault_uri: Optional[str] = ..., + secret_name: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.AvsDataStore(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DISABLED = "Disabled" - ENABLED = "Enabled" + class azure.mgmt.netapp.models.CredentialsStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): + ACTIVE = "Active" + CREDENTIALS_EXPIRED = "CredentialsExpired" + NO_CREDENTIALS_SET = "NoCredentialsSet" - class azure.mgmt.netapp.models.AzureKeyVaultDetails(_Model): - certificate_akv_details: Optional[CertificateAkvDetails] - credentials_akv_details: Optional[CredentialsAkvDetails] + 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, *, - certificate_akv_details: Optional[CertificateAkvDetails] = ..., - credentials_akv_details: Optional[CredentialsAkvDetails] = ... + 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.Backup(ProxyResource): - id: str - name: str - properties: BackupProperties - system_data: SystemData - type: str + class azure.mgmt.netapp.models.DesiredRansomwareProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DISABLED = "Disabled" + ENABLED = "Enabled" - def __getattr__(self, name: str) -> Any: ... + + 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, *, - properties: BackupProperties + 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: ... - def __setattr__( - self, - key: str, - value: Any - ) -> None: ... - - - class azure.mgmt.netapp.models.BackupPatch(_Model): - properties: Optional[BackupPatchProperties] - def __getattr__(self, name: str) -> Any: ... + class azure.mgmt.netapp.models.Dimension(_Model): + display_name: Optional[str] + name: Optional[str] @overload def __init__( self, *, - properties: Optional[BackupPatchProperties] = ... + display_name: Optional[str] = ..., + name: 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.EnableSubvolumes(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DISABLED = "Disabled" + ENABLED = "Enabled" - class azure.mgmt.netapp.models.BackupPatchProperties(_Model): - label: Optional[str] + + 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, *, - label: Optional[str] = ... + 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.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: ... + class azure.mgmt.netapp.models.EncryptionIdentityPatch(_Model): + federated_client_id: Optional[str] + user_assigned_identity: Optional[str] @overload def __init__( self, *, - location: str, - properties: BackupPolicyProperties, - tags: Optional[dict[str, str]] = ... + 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.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: ... + 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, *, - location: Optional[str] = ..., - properties: Optional[BackupPolicyProperties] = ..., - tags: Optional[dict[str, str]] = ... + private_endpoint_id: str, + virtual_network_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.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.models.EncryptionType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DOUBLE = "Double" + SINGLE = "Single" - @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] = ... - ) -> None: ... - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + class azure.mgmt.netapp.models.EndpointType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DST = "dst" + SRC = "src" - 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 + class azure.mgmt.netapp.models.ErrorAdditionalInfo(_Model): + info: Optional[Any] + type: Optional[str] - @overload - def __init__( - self, - *, - 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.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.BackupRestoreFiles(_Model): - destination_volume_id: str - file_list: list[str] - restore_file_path: Optional[str] + class azure.mgmt.netapp.models.ErrorResponse(_Model): + error: Optional[ErrorDetail] @overload def __init__( self, *, - destination_volume_id: str, - file_list: list[str], - restore_file_path: Optional[str] = ... + error: Optional[ErrorDetail] = ... ) -> 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.Exclude(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DELETED = "Deleted" + NONE = "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 - def __getattr__(self, name: str) -> Any: ... + 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, *, - location: str, - properties: Optional[BackupVaultProperties] = ..., - tags: Optional[dict[str, str]] = ... + 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: ... - 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.BackupVaultPatch(_Model): - tags: Optional[dict[str, str]] + 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, *, - tags: Optional[dict[str, str]] = ... + availability_zone: Optional[str] = ..., + name: str, + subnet_id: str ) -> 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 + class azure.mgmt.netapp.models.FileSystemUser(_Model): + cifs_user: Optional[CifsUser] + nfs_user: Optional[NfsUser] @overload def __init__( self, *, - backup_vault_id: str + cifs_user: Optional[CifsUser] = ..., + nfs_user: Optional[NfsUser] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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] + class azure.mgmt.netapp.models.GetGroupIdListForLDAPUserRequest(_Model): + username: str @overload def __init__( self, *, - azure_key_vault_uri: str, - secret_name: str, - user_assigned_identity: Optional[str] = ... + username: str ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.BindPasswordAkvConfigPatch(_Model): - azure_key_vault_uri: Optional[str] - secret_name: Optional[str] - user_assigned_identity: Optional[str] + class azure.mgmt.netapp.models.GetGroupIdListForLDAPUserResponse(_Model): + group_ids_for_ldap_user: Optional[list[str]] @overload def __init__( self, *, - azure_key_vault_uri: Optional[str] = ..., - secret_name: Optional[str] = ..., - user_assigned_identity: Optional[str] = ... + group_ids_for_ldap_user: Optional[list[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] + class azure.mgmt.netapp.models.GetKeyVaultStatusResponse(_Model): + properties: Optional[GetKeyVaultStatusResponseProperties] + + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - client_ip: Optional[str] = ..., - confirm_running_disruptive_operation: Optional[bool] = ... + 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.BreakReplicationRequest(_Model): - force_break_replication: Optional[bool] + + 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, *, - force_break_replication: Optional[bool] = ... + 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: ... - class azure.mgmt.netapp.models.BreakthroughMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): + class azure.mgmt.netapp.models.GlobalFileLockingState(str, Enum, metaclass=CaseInsensitiveEnumMeta): DISABLED = "Disabled" ENABLED = "Enabled" - class azure.mgmt.netapp.models.Bucket(ProxyResource): - id: str - name: str - properties: Optional[BucketProperties] - system_data: SystemData - type: 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[BucketProperties] = ... + 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.BucketCredentialsExpiry(_Model): - key_pair_expiry_days: Optional[int] + + 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, *, - key_pair_expiry_days: Optional[int] = ... + 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.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: ... + 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, *, - properties: Optional[BucketPatchProperties] = ... + key_name: str, + key_vault_resource_id: Optional[str] = ..., + key_vault_uri: str ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - def __setattr__( - 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] + class azure.mgmt.netapp.models.KeyVaultPropertiesPatch(_Model): + key_name: Optional[str] + key_vault_resource_id: Optional[str] + key_vault_uri: Optional[str] @overload def __init__( self, *, - akv_details: Optional[AzureKeyVaultDetails] = ..., - file_system_user: Optional[FileSystemUser] = ..., - permissions: Optional[Union[str, BucketPatchPermissions]] = ..., - server: Optional[BucketServerPatchProperties] = ... + 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: ... - class azure.mgmt.netapp.models.BucketPermissions(str, Enum, metaclass=CaseInsensitiveEnumMeta): - READ_ONLY = "ReadOnly" - READ_WRITE = "ReadWrite" + 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.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]] + 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_port: Optional[int] + ldap_servers: Optional[list[str]] + net_group_dn: Optional[str] + secure_ldap_type: Optional[Union[str, SecureLdapType]] + server_ca_certificate: Optional[str] + user_dn: Optional[str] @overload def __init__( self, *, - akv_details: Optional[AzureKeyVaultDetails] = ..., - file_system_user: Optional[FileSystemUser] = ..., - path: Optional[str] = ..., - permissions: Optional[Union[str, BucketPermissions]] = ..., - server: Optional[BucketServerProperties] = ... + 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_port: Optional[int] = ..., + ldap_servers: Optional[list[str]] = ..., + net_group_dn: Optional[str] = ..., + secure_ldap_type: Optional[Union[str, SecureLdapType]] = ..., + server_ca_certificate: Optional[str] = ..., + user_dn: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.BucketServerPatchProperties(_Model): - certificate_object: Optional[str] - fqdn: Optional[str] - on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] + 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_port: Optional[int] + ldap_servers: Optional[list[str]] + net_group_dn: Optional[str] + secure_ldap_type: Optional[Union[str, SecureLdapType]] + server_ca_certificate: Optional[str] + user_dn: Optional[str] @overload def __init__( self, *, - certificate_object: Optional[str] = ..., - fqdn: Optional[str] = ..., - on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] = ... + 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_port: Optional[int] = ..., + ldap_servers: Optional[list[str]] = ..., + net_group_dn: Optional[str] = ..., + secure_ldap_type: Optional[Union[str, SecureLdapType]] = ..., + server_ca_certificate: Optional[str] = ..., + user_dn: Optional[str] = ... ) -> 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]] + class azure.mgmt.netapp.models.LdapSearchScopeOpt(_Model): + group_dn: Optional[str] + group_membership_filter: Optional[str] + user_dn: Optional[str] @overload def __init__( self, *, - certificate_object: Optional[str] = ..., - fqdn: Optional[str] = ..., - on_certificate_conflict_action: Optional[Union[str, OnCertificateConflictAction]] = ... + group_dn: Optional[str] = ..., + group_membership_filter: Optional[str] = ..., + user_dn: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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, - *, - 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.LdapServerType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + ACTIVE_DIRECTORY = "ActiveDirectory" + OPEN_LDAP = "OpenLDAP" - class azure.mgmt.netapp.models.CacheFileAccessLogs(str, Enum, metaclass=CaseInsensitiveEnumMeta): + class azure.mgmt.netapp.models.LdapState(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]] + class azure.mgmt.netapp.models.ListQuotaReportResponse(_Model): + quota_report_records: Optional[list[QuotaReport]] @overload def __init__( self, *, - 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]] = ... + quota_report_records: Optional[list[QuotaReport]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.CachePropertiesExportPolicy(_Model): - rules: Optional[list[ExportPolicyRule]] + class azure.mgmt.netapp.models.ListQuotaReportResult(_Model): + properties: Optional[ListQuotaReportResponse] @overload def __init__( self, *, - rules: Optional[list[ExportPolicyRule]] = ... + properties: Optional[ListQuotaReportResponse] = ... ) -> 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]] + class azure.mgmt.netapp.models.ListReplicationsRequest(_Model): + exclude: Optional[Union[str, Exclude]] @overload def __init__( self, *, - properties: Optional[CacheUpdateProperties] = ..., - tags: Optional[dict[str, str]] = ... + exclude: Optional[Union[str, Exclude]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> 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]] + class azure.mgmt.netapp.models.LogSpecification(_Model): + display_name: Optional[str] + name: Optional[str] @overload def __init__( self, *, - 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]] = ... + display_name: Optional[str] = ..., + name: Optional[str] = ... ) -> 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: ... + 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 __init__( self, *, - location: str, - properties: PoolProperties, - tags: Optional[dict[str, str]] = ... + type: Union[str, ManagedServiceIdentityType], + user_assigned_identities: Optional[dict[str, UserAssignedIdentity]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - def __setattr__( - self, - key: str, - value: 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.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: ... + class azure.mgmt.netapp.models.MetricAggregationType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + AVERAGE = "Average" + + + 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 __init__( self, *, - location: Optional[str] = ..., - properties: Optional[PoolPatchProperties] = ..., - tags: Optional[dict[str, str]] = ... + 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 __init__(self, mapping: Mapping[str, Any]) -> None: ... - def __setattr__( - self, - key: str, - value: Any - ) -> None: ... + class azure.mgmt.netapp.models.MirrorState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + BROKEN = "Broken" + MIRRORED = "Mirrored" + UNINITIALIZED = "Uninitialized" - class azure.mgmt.netapp.models.CertificateAkvDetails(_Model): - certificate_key_vault_uri: Optional[str] - certificate_name: Optional[str] - user_assigned_identity: Optional[str] + + 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__( self, *, - certificate_key_vault_uri: Optional[str] = ..., - certificate_name: Optional[str] = ..., - user_assigned_identity: Optional[str] = ... + days_of_month: 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: ... - 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 + 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, *, - key_name: str, - key_vault_private_endpoints: list[KeyVaultPrivateEndpoint], - key_vault_resource_id: Optional[str] = ..., - key_vault_uri: str + file_system_id: str, + smb_server_fqdn: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ChangeZoneRequest(_Model): - new_zone: str + class azure.mgmt.netapp.models.MultiAdStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DISABLED = "Disabled" + ENABLED = "Enabled" + + + 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 __init__( self, *, - new_zone: str + identity: Optional[ManagedServiceIdentity] = ..., + location: str, + properties: Optional[AccountProperties] = ..., + 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.CheckAvailabilityResponse(_Model): - is_available: Optional[bool] - message: Optional[str] - reason: Optional[Union[str, InAvailabilityReasonType]] + class azure.mgmt.netapp.models.NetAppAccountPatch(_Model): + identity: Optional[ManagedServiceIdentity] + properties: Optional[AccountPropertiesPatch] + tags: Optional[dict[str, str]] + + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - is_available: Optional[bool] = ..., - message: Optional[str] = ..., - reason: Optional[Union[str, InAvailabilityReasonType]] = ... + identity: Optional[ManagedServiceIdentity] = ..., + properties: Optional[AccountPropertiesPatch] = ..., + 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.CheckElasticResourceAvailabilityReason(str, Enum, metaclass=CaseInsensitiveEnumMeta): - ALREADY_EXISTS = "AlreadyExists" - INVALID = "Invalid" + + class azure.mgmt.netapp.models.NetAppProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + ACCEPTED = "Accepted" + CANCELED = "Canceled" + CREATING = "Creating" + DELETING = "Deleting" + FAILED = "Failed" + MOVING = "Moving" + PATCHING = "Patching" + SUCCEEDED = "Succeeded" + UPDATING = "Updating" - class azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse(_Model): - is_available: Optional[Union[str, CheckElasticResourceAvailabilityStatus]] - message: Optional[str] - reason: Optional[Union[str, CheckElasticResourceAvailabilityReason]] + 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 __init__( self, *, - is_available: Optional[Union[str, CheckElasticResourceAvailabilityStatus]] = ..., - message: Optional[str] = ..., - reason: Optional[Union[str, CheckElasticResourceAvailabilityReason]] = ... + 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 __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.CheckElasticResourceAvailabilityStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): - FALSE = "False" - TRUE = "True" + class azure.mgmt.netapp.models.NetworkSiblingSetProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + CANCELED = "Canceled" + FAILED = "Failed" + SUCCEEDED = "Succeeded" + UPDATING = "Updating" - class azure.mgmt.netapp.models.CheckElasticVolumeFilePathAvailabilityRequest(_Model): - file_path: str + class azure.mgmt.netapp.models.NfsUser(_Model): + group_id: Optional[int] + user_id: Optional[int] @overload def __init__( self, *, - file_path: str + group_id: Optional[int] = ..., + user_id: Optional[int] = ... ) -> None: ... @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.NicInfo(_Model): + ip_address: Optional[str] + volume_resource_ids: Optional[list[str]] - 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" + @overload + def __init__( + self, + *, + volume_resource_ids: Optional[list[str]] = ... + ) -> None: ... + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ChownMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): - RESTRICTED = "Restricted" - UNRESTRICTED = "Unrestricted" + class azure.mgmt.netapp.models.OnCertificateConflictAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): + FAIL = "Fail" + UPDATE = "Update" - class azure.mgmt.netapp.models.CifsChangeNotifyState(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DISABLED = "Disabled" - ENABLED = "Enabled" + class azure.mgmt.netapp.models.Operation(_Model): + display: Optional[OperationDisplay] + name: Optional[str] + origin: Optional[str] + properties: Optional[OperationProperties] - class azure.mgmt.netapp.models.CifsUser(_Model): - username: Optional[str] + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - username: Optional[str] = ... + display: Optional[OperationDisplay] = ..., + name: Optional[str] = ..., + origin: Optional[str] = ..., + properties: Optional[OperationProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... + - class azure.mgmt.netapp.models.ClusterPeerCommandResponse(_Model): - properties: Optional[ClusterPeerCommandResponseProperties] + class azure.mgmt.netapp.models.OperationDisplay(_Model): + description: Optional[str] + operation: Optional[str] + provider: Optional[str] + resource: Optional[str] @overload def __init__( self, *, - properties: Optional[ClusterPeerCommandResponseProperties] = ... + description: Optional[str] = ..., + operation: Optional[str] = ..., + provider: Optional[str] = ..., + resource: 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.OperationProperties(_Model): + service_specification: Optional[ServiceSpecification] @overload def __init__( self, *, - cluster_peering_command: Optional[str] = ..., - passphrase: Optional[str] = ... + service_specification: Optional[ServiceSpecification] = ... ) -> 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] - user_assigned_identity: Optional[str] + 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 __init__( self, *, - credentials_key_vault_uri: Optional[str] = ..., - secret_name: Optional[str] = ..., - user_assigned_identity: Optional[str] = ... + peer_addresses: list[str], + peer_cluster_name: str, + peer_volume_name: str, + peer_vserver_name: 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.PeerClusterForVolumeMigrationRequest(_Model): + peer_ip_addresses: list[str] @overload def __init__( self, *, - hour: Optional[int] = ..., - minute: Optional[int] = ..., - snapshots_to_keep: Optional[int] = ..., - used_bytes: Optional[int] = ... + peer_ip_addresses: list[str] ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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.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.PeeringPassphrases(_Model): + cluster_peering_command: str + cluster_peering_passphrase: str + critical_warning: Optional[str] + vserver_peering_command: str @overload def __init__( self, *, - region: Optional[str] = ..., - replication_type: Optional[Union[str, ReplicationType]] = ..., - resource_id: Optional[str] = ..., - zone: Optional[str] = ... + cluster_peering_command: str, + cluster_peering_passphrase: str, + vserver_peering_command: 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.PlacementKeyValuePairs(_Model): + key: str + value: str @overload def __init__( self, *, - display_name: Optional[str] = ..., - name: Optional[str] = ... + key: str, + value: str ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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 + class azure.mgmt.netapp.models.PoolChangeRequest(_Model): + new_pool_resource_id: str @overload def __init__( self, *, - identity: Optional[ManagedServiceIdentity] = ..., - location: str, - properties: Optional[ElasticAccountProperties] = ..., - tags: Optional[dict[str, str]] = ... + new_pool_resource_id: str ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticAccountProperties(_Model): - encryption: Optional[ElasticEncryption] - provisioning_state: Optional[Union[str, NetAppProvisioningState]] + 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 __init__( self, *, - encryption: Optional[ElasticEncryption] = ... + cool_access: Optional[bool] = ..., + custom_throughput_mibps: Optional[int] = ..., + qos_type: Optional[Union[str, QosType]] = ..., + size: Optional[int] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticAccountUpdate(_Model): - identity: Optional[ManagedServiceIdentity] - properties: Optional[ElasticAccountUpdateProperties] - tags: Optional[dict[str, str]] + 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 __init__( self, *, - identity: Optional[ManagedServiceIdentity] = ..., - properties: Optional[ElasticAccountUpdateProperties] = ..., - tags: Optional[dict[str, str]] = ... + 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 __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticAccountUpdateProperties(_Model): - encryption: Optional[ElasticEncryption] + 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 __init__( self, *, - encryption: Optional[ElasticEncryption] = ... + network_sibling_set_id: str, + subnet_id: str ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticBackup(ProxyResource): - id: str + class azure.mgmt.netapp.models.QuotaAvailabilityRequest(_Model): name: str - properties: Optional[ElasticBackupProperties] - system_data: SystemData - type: str + resource_group: str + type: Union[str, CheckQuotaNameResourceTypes] @overload def __init__( self, *, - properties: Optional[ElasticBackupProperties] = ... + name: str, + resource_group: str, + type: Union[str, CheckQuotaNameResourceTypes] ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticBackupPolicy(TrackedResource): - e_tag: Optional[str] + class azure.mgmt.netapp.models.QuotaItem(ProxyResource): id: str - location: str name: str - properties: Optional[ElasticBackupPolicyProperties] + properties: Optional[QuotaItemProperties] system_data: SystemData - tags: dict[str, str] type: str + def __getattr__(self, name: str) -> Any: ... + @overload def __init__( self, *, - location: str, - properties: Optional[ElasticBackupPolicyProperties] = ..., - tags: Optional[dict[str, str]] = ... + properties: Optional[QuotaItemProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... - 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] + + 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 __init__( self, *, - daily_backups_to_keep: Optional[int] = ..., - monthly_backups_to_keep: Optional[int] = ..., - policy_state: Optional[Union[str, ElasticBackupPolicyState]] = ..., - weekly_backups_to_keep: Optional[int] = ... + 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 __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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]] + class azure.mgmt.netapp.models.QuotaReportFilterRequest(_Model): + quota_target: Optional[str] + quota_type: Optional[Union[str, QuotaType]] + usage_threshold_percentage: Optional[int] @overload def __init__( self, *, - properties: Optional[ElasticBackupPolicyUpdateProperties] = ..., - tags: Optional[dict[str, str]] = ... + quota_target: Optional[str] = ..., + quota_type: Optional[Union[str, QuotaType]] = ..., + usage_threshold_percentage: Optional[int] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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] + 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 __init__( self, *, - daily_backups_to_keep: Optional[int] = ..., - monthly_backups_to_keep: Optional[int] = ..., - policy_state: Optional[Union[str, ElasticBackupPolicyState]] = ..., - weekly_backups_to_keep: Optional[int] = ... + desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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]] + 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 __init__( self, *, - elastic_snapshot_resource_id: Optional[str] = ..., - elastic_volume_resource_id: str, - label: Optional[str] = ..., - snapshot_usage: Optional[Union[str, SnapshotUsage]] = ... + desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticBackupType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - MANUAL = "Manual" - SCHEDULED = "Scheduled" - - - class azure.mgmt.netapp.models.ElasticBackupVault(TrackedResource): - e_tag: Optional[str] + class azure.mgmt.netapp.models.RansomwareReport(ProxyResource): id: str - location: str name: str - properties: Optional[ElasticBackupVaultProperties] + properties: Optional[RansomwareReportProperties] system_data: SystemData - tags: dict[str, str] type: str @overload def __init__( self, *, - location: str, - properties: Optional[ElasticBackupVaultProperties] = ..., - tags: Optional[dict[str, str]] = ... + properties: Optional[RansomwareReportProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticBackupVaultProperties(_Model): - provisioning_state: Optional[Union[str, NetAppProvisioningState]] - - - class azure.mgmt.netapp.models.ElasticBackupVaultUpdate(_Model): - tags: Optional[dict[str, str]] + 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.RansomwareReportSeverity(str, Enum, metaclass=CaseInsensitiveEnumMeta): + HIGH = "High" + LOW = "Low" + MODERATE = "Moderate" + NONE = "None" + + + 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 __init__( self, *, - tags: Optional[dict[str, str]] = ... + extensions: list[str], + resolution: Union[str, RansomwareSuspectResolution] ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticCapacityPool(TrackedResource): - e_tag: Optional[str] - id: str - location: str - name: str - properties: Optional[ElasticCapacityPoolProperties] - system_data: SystemData - tags: dict[str, str] - type: str - zones: Optional[list[str]] + class azure.mgmt.netapp.models.ReestablishReplicationRequest(_Model): + source_volume_id: Optional[str] @overload def __init__( self, *, - location: str, - properties: Optional[ElasticCapacityPoolProperties] = ..., - tags: Optional[dict[str, str]] = ..., - zones: Optional[list[str]] = ... + source_volume_id: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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] + class azure.mgmt.netapp.models.RegionInfo(_Model): + availability_zone_mappings: Optional[list[RegionInfoAvailabilityZoneMappingsItem]] + storage_to_network_proximity: Optional[Union[str, RegionStorageToNetworkProximity]] @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 + availability_zone_mappings: Optional[list[RegionInfoAvailabilityZoneMappingsItem]] = ..., + storage_to_network_proximity: Optional[Union[str, RegionStorageToNetworkProximity]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticCapacityPoolUpdate(_Model): - properties: Optional[ElasticCapacityPoolUpdateProperties] - tags: Optional[dict[str, str]] + class azure.mgmt.netapp.models.RegionInfoAvailabilityZoneMappingsItem(_Model): + availability_zone: Optional[str] + is_available: Optional[bool] @overload def __init__( self, *, - properties: Optional[ElasticCapacityPoolUpdateProperties] = ..., - tags: Optional[dict[str, str]] = ... + availability_zone: Optional[str] = ..., + is_available: Optional[bool] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticCapacityPoolUpdateProperties(_Model): - active_directory_config_resource_id: Optional[str] - encryption: Optional[ElasticEncryptionConfiguration] - size: Optional[int] + 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 __init__( self, *, - active_directory_config_resource_id: Optional[str] = ..., - encryption: Optional[ElasticEncryptionConfiguration] = ..., - size: Optional[int] = ... + properties: Optional[RegionInfo] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... + - class azure.mgmt.netapp.models.ElasticEncryption(_Model): - identity: Optional[ElasticEncryptionIdentity] - key_source: Optional[Union[str, KeySource]] - key_vault_properties: Optional[ElasticKeyVaultProperties] + 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 __init__( self, *, - identity: Optional[ElasticEncryptionIdentity] = ..., - key_source: Optional[Union[str, KeySource]] = ..., - key_vault_properties: Optional[ElasticKeyVaultProperties] = ... + creation_token: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticEncryptionConfiguration(_Model): - elastic_pool_encryption_key_source: Union[str, ElasticPoolEncryptionKeySource] - key_vault_private_endpoint_resource_id: str + class azure.mgmt.netapp.models.RemotePath(_Model): + external_host_name: str + server_name: str + volume_name: str @overload def __init__( self, *, - elastic_pool_encryption_key_source: Union[str, ElasticPoolEncryptionKeySource], - key_vault_private_endpoint_resource_id: str + external_host_name: str, + server_name: str, + volume_name: str ) -> None: ... @overload def __init__(self, mapping: Mapping[str, 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.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, *, - federated_client_id: Optional[str] = ..., - user_assigned_identity: Optional[str] = ... + endpoint_type: Optional[Union[str, EndpointType]] = ..., + remote_volume_region: Optional[str] = ..., + remote_volume_resource_id: Optional[str] = ..., + replication_schedule: Optional[Union[str, ReplicationSchedule]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticExportPolicy(_Model): - rules: Optional[list[ElasticExportPolicyRule]] + 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]] @overload def __init__( self, *, - rules: Optional[list[ElasticExportPolicyRule]] = ... + remote_path: Optional[RemotePath] = ..., + remote_volume_region: Optional[str] = ..., + remote_volume_resource_id: Optional[str] = ..., + replication_schedule: Optional[Union[str, ReplicationSchedule]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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]] + class azure.mgmt.netapp.models.ReplicationSchedule(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DAILY = "daily" + ENUM_10_MINUTELY = "_10minutely" + HOURLY = "hourly" + + + 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, *, - 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]] = ... + error_message: Optional[str] = ..., + healthy: Optional[bool] = ..., + mirror_state: Optional[Union[str, MirrorState]] = ..., + relationship_status: Optional[Union[str, VolumeReplicationRelationshipStatus]] = ..., + total_progress: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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]] + class azure.mgmt.netapp.models.ReplicationType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + CROSS_REGION_REPLICATION = "CrossRegionReplication" + CROSS_ZONE_REPLICATION = "CrossZoneReplication" + + + 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, *, - key_name: Optional[str] = ..., - key_vault_resource_id: Optional[str] = ..., - key_vault_uri: Optional[str] = ... + name: str, + resource_group: str, + type: Union[str, CheckNameResourceTypes] ) -> None: ... @overload def __init__(self, mapping: Mapping[str, 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.ElasticMountTargetProperties(_Model): - ip_address: Optional[str] - smb_server_fqdn: Optional[str] + 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.ElasticNfsv3Access(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DISABLED = "Disabled" - ENABLED = "Enabled" + class azure.mgmt.netapp.models.SecureLdapType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + LDAP_OVER_TLS = "LdapOverTLS" + NONE = "None" - class azure.mgmt.netapp.models.ElasticNfsv4Access(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DISABLED = "Disabled" - ENABLED = "Enabled" + class azure.mgmt.netapp.models.SecurityStyle(str, Enum, metaclass=CaseInsensitiveEnumMeta): + NTFS = "ntfs" + UNIX = "unix" - class azure.mgmt.netapp.models.ElasticPoolEncryptionKeySource(str, Enum, metaclass=CaseInsensitiveEnumMeta): - KEY_VAULT = "KeyVault" - NET_APP = "NetApp" + 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.ElasticProtocolType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - NF_SV3 = "NFSv3" - NF_SV4 = "NFSv4" - SMB = "SMB" + class azure.mgmt.netapp.models.ServiceSpecification(_Model): + log_specifications: Optional[list[LogSpecification]] + metric_specifications: Optional[list[MetricSpecification]] + @overload + def __init__( + self, + *, + log_specifications: Optional[list[LogSpecification]] = ..., + metric_specifications: Optional[list[MetricSpecification]] = ... + ) -> None: ... - class azure.mgmt.netapp.models.ElasticResourceAvailabilityStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): - OFFLINE = "Offline" - ONLINE = "Online" + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticRootAccess(str, Enum, metaclass=CaseInsensitiveEnumMeta): + class azure.mgmt.netapp.models.SmbAccessBasedEnumeration(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.SmbEncryptionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + DISABLED = "Disabled" + ENABLED = "Enabled" - class azure.mgmt.netapp.models.ElasticSmbEncryption(str, Enum, metaclass=CaseInsensitiveEnumMeta): + class azure.mgmt.netapp.models.SmbNonBrowsable(str, Enum, metaclass=CaseInsensitiveEnumMeta): DISABLED = "Disabled" ENABLED = "Enabled" - class azure.mgmt.netapp.models.ElasticSmbPatchProperties(_Model): - smb_encryption: Optional[Union[str, ElasticSmbEncryption]] + 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, *, - smb_encryption: Optional[Union[str, ElasticSmbEncryption]] = ... + smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]] = ..., + smb_encryption: Optional[Union[str, SmbEncryptionState]] = ..., + smb_non_browsable: Optional[Union[str, SmbNonBrowsable]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticSmbProperties(_Model): - smb_encryption: Optional[Union[str, ElasticSmbEncryption]] - - @overload - def __init__( - self, - *, - smb_encryption: Optional[Union[str, ElasticSmbEncryption]] = ... - ) -> None: ... - - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - - class azure.mgmt.netapp.models.ElasticSnapshot(ProxyResource): + class azure.mgmt.netapp.models.Snapshot(ProxyResource): id: str + location: str name: str - properties: Optional[ElasticSnapshotProperties] + properties: Optional[SnapshotProperties] system_data: SystemData type: str + def __getattr__(self, name: str) -> Any: ... + @overload def __init__( self, *, - properties: Optional[ElasticSnapshotProperties] = ... + location: str, + properties: Optional[SnapshotProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... + + + class azure.mgmt.netapp.models.SnapshotPatch(_Model): + - class azure.mgmt.netapp.models.ElasticSnapshotPolicy(TrackedResource): - e_tag: Optional[str] + class azure.mgmt.netapp.models.SnapshotPolicy(TrackedResource): + etag: Optional[str] id: str location: str name: str - properties: Optional[ElasticSnapshotPolicyProperties] + properties: SnapshotPolicyProperties system_data: SystemData tags: dict[str, str] type: str + def __getattr__(self, name: str) -> Any: ... + @overload def __init__( self, *, location: str, - properties: Optional[ElasticSnapshotPolicyProperties] = ..., + properties: SnapshotPolicyProperties, tags: Optional[dict[str, str]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - class azure.mgmt.netapp.models.ElasticSnapshotPolicyDailySchedule(_Model): - hour: Optional[int] - minute: Optional[int] - snapshots_to_keep: Optional[int] - - @overload - def __init__( + def __setattr__( self, - *, - hour: Optional[int] = ..., - minute: Optional[int] = ..., - snapshots_to_keep: Optional[int] = ... + key: str, + value: Any ) -> 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] - class azure.mgmt.netapp.models.ElasticSnapshotPolicyHourlySchedule(_Model): - minute: Optional[int] - snapshots_to_keep: Optional[int] + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - minute: Optional[int] = ..., - snapshots_to_keep: Optional[int] = ... + location: Optional[str] = ..., + properties: Optional[SnapshotPolicyProperties] = ..., + 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.ElasticSnapshotPolicyMonthlySchedule(_Model): - days_of_month: Optional[list[int]] - hour: Optional[int] - minute: Optional[int] - snapshots_to_keep: Optional[int] + 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, *, - days_of_month: Optional[list[int]] = ..., - hour: Optional[int] = ..., - minute: Optional[int] = ..., - snapshots_to_keep: Optional[int] = ... + daily_schedule: Optional[DailySchedule] = ..., + enabled: Optional[bool] = ..., + hourly_schedule: Optional[HourlySchedule] = ..., + monthly_schedule: Optional[MonthlySchedule] = ..., + weekly_schedule: Optional[WeeklySchedule] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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] + class azure.mgmt.netapp.models.SnapshotPolicyVolumeList(_Model): + next_link: Optional[str] + value: list[Volume] @overload def __init__( self, *, - daily_schedule: Optional[ElasticSnapshotPolicyDailySchedule] = ..., - hourly_schedule: Optional[ElasticSnapshotPolicyHourlySchedule] = ..., - monthly_schedule: Optional[ElasticSnapshotPolicyMonthlySchedule] = ..., - policy_status: Optional[Union[str, PolicyStatus]] = ..., - weekly_schedule: Optional[ElasticSnapshotPolicyWeeklySchedule] = ... + next_link: Optional[str] = ..., + value: list[Volume] ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticSnapshotPolicyUpdate(_Model): - properties: Optional[ElasticSnapshotPolicyUpdateProperties] - tags: Optional[dict[str, str]] + 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] @overload def __init__( self, *, - properties: Optional[ElasticSnapshotPolicyUpdateProperties] = ..., - tags: Optional[dict[str, str]] = ... + destination_path: Optional[str] = ..., + file_paths: list[str] ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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] + 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 __init__( self, *, - daily_schedule: Optional[ElasticSnapshotPolicyDailySchedule] = ..., - hourly_schedule: Optional[ElasticSnapshotPolicyHourlySchedule] = ..., - monthly_schedule: Optional[ElasticSnapshotPolicyMonthlySchedule] = ..., - policy_status: Optional[Union[str, PolicyStatus]] = ..., - weekly_schedule: Optional[ElasticSnapshotPolicyWeeklySchedule] = ... + properties: Optional[SubvolumeProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... + - class azure.mgmt.netapp.models.ElasticSnapshotPolicyWeeklySchedule(_Model): - days: Optional[list[Union[str, DayOfWeek]]] - hour: Optional[int] - minute: Optional[int] - snapshots_to_keep: Optional[int] + 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: ... @overload def __init__( self, *, - days: Optional[list[Union[str, DayOfWeek]]] = ..., - hour: Optional[int] = ..., - minute: Optional[int] = ..., - snapshots_to_keep: Optional[int] = ... + properties: Optional[SubvolumeModelProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - class azure.mgmt.netapp.models.ElasticSnapshotProperties(_Model): - provisioning_state: Optional[Union[str, NetAppProvisioningState]] - - - class azure.mgmt.netapp.models.ElasticUnixAccessRule(str, Enum, metaclass=CaseInsensitiveEnumMeta): - NO_ACCESS = "NoAccess" - READ_ONLY = "ReadOnly" - READ_WRITE = "ReadWrite" + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... - 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]] + 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 __init__( self, *, - location: str, - properties: Optional[ElasticVolumeProperties] = ..., - tags: Optional[dict[str, str]] = ..., - zones: Optional[list[str]] = ... + 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 __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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]] + class azure.mgmt.netapp.models.SubvolumePatchParams(_Model): + path: Optional[str] + size: Optional[int] @overload def __init__( self, *, - elastic_backup_policy_resource_id: Optional[str] = ..., - elastic_backup_vault_resource_id: Optional[str] = ..., - policy_enforcement: Optional[Union[str, ElasticVolumePolicyEnforcement]] = ... + path: Optional[str] = ..., + size: Optional[int] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticVolumeDataProtectionPatchProperties(_Model): - backup: Optional[ElasticVolumeBackupProperties] - snapshot: Optional[ElasticVolumeSnapshotProperties] + class azure.mgmt.netapp.models.SubvolumePatchRequest(_Model): + properties: Optional[SubvolumePatchParams] + + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - backup: Optional[ElasticVolumeBackupProperties] = ..., - snapshot: Optional[ElasticVolumeSnapshotProperties] = ... + properties: Optional[SubvolumePatchParams] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... + - class azure.mgmt.netapp.models.ElasticVolumeDataProtectionProperties(_Model): - backup: Optional[ElasticVolumeBackupProperties] - snapshot: Optional[ElasticVolumeSnapshotProperties] + 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, *, - backup: Optional[ElasticVolumeBackupProperties] = ..., - snapshot: Optional[ElasticVolumeSnapshotProperties] = ... + parent_path: Optional[str] = ..., + path: Optional[str] = ..., + size: Optional[int] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticVolumePolicyEnforcement(str, Enum, metaclass=CaseInsensitiveEnumMeta): - ENFORCED = "Enforced" - NOT_ENFORCED = "NotEnforced" + class azure.mgmt.netapp.models.SuspectFile(_Model): + file_timestamp: Optional[datetime] + suspect_file_name: Optional[str] - 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] + class azure.mgmt.netapp.models.SvmPeerCommandResponse(_Model): + properties: Optional[SvmPeerCommandResponseProperties] @overload def __init__( self, *, - 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] = ... + properties: Optional[SvmPeerCommandResponseProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticVolumeRestorationState(str, Enum, metaclass=CaseInsensitiveEnumMeta): - FAILED = "Failed" - RESTORED = "Restored" - RESTORING = "Restoring" - - - class azure.mgmt.netapp.models.ElasticVolumeRevert(_Model): - snapshot_resource_id: Optional[str] + class azure.mgmt.netapp.models.SvmPeerCommandResponseProperties(_Model): + svm_peering_command: Optional[str] @overload def __init__( self, *, - snapshot_resource_id: Optional[str] = ... + svm_peering_command: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticVolumeSnapshotProperties(_Model): - snapshot_policy_resource_id: Optional[str] + 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, *, - snapshot_policy_resource_id: Optional[str] = ... + 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 __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ElasticVolumeUpdate(_Model): - properties: Optional[ElasticVolumeUpdateProperties] + 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 __init__( self, *, - properties: Optional[ElasticVolumeUpdateProperties] = ..., + location: str, tags: Optional[dict[str, str]] = ... ) -> None: ... @@ -6244,318 +6043,372 @@ namespace azure.mgmt.netapp.models def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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]] + 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 __init__( self, *, - data_protection: Optional[ElasticVolumeDataProtectionPatchProperties] = ..., - export_policy: Optional[ElasticExportPolicy] = ..., - size: Optional[int] = ..., - smb_properties: Optional[ElasticSmbPatchProperties] = ..., - snapshot_directory_visibility: Optional[Union[str, SnapshotDirectoryVisibility]] = ... + network_features: Union[str, NetworkFeatures], + network_sibling_set_id: str, + network_sibling_set_state_id: str, + subnet_id: 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.UsageName(_Model): + localized_value: Optional[str] + value: Optional[str] - - 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, - *, - federated_client_id: Optional[str] = ..., - user_assigned_identity: Optional[str] = ... - ) -> None: ... + @overload + def __init__( + self, + *, + localized_value: Optional[str] = ..., + value: 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.UsageProperties(_Model): + current_value: Optional[int] + limit: Optional[int] + unit: Optional[str] - class azure.mgmt.netapp.models.EncryptionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DISABLED = "Disabled" - ENABLED = "Enabled" + class azure.mgmt.netapp.models.UsageResult(_Model): + id: Optional[str] + name: Optional[UsageName] + properties: Optional[UsageProperties] - class azure.mgmt.netapp.models.EncryptionTransitionRequest(_Model): - private_endpoint_id: str - virtual_network_id: str + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - private_endpoint_id: str, - virtual_network_id: str + properties: Optional[UsageProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... - class azure.mgmt.netapp.models.EncryptionType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DOUBLE = "Double" - SINGLE = "Single" + class azure.mgmt.netapp.models.UserAssignedIdentity(_Model): + client_id: Optional[str] + principal_id: Optional[str] - class azure.mgmt.netapp.models.EndpointType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DST = "dst" - SRC = "src" + 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]] - class azure.mgmt.netapp.models.EntraIdAkvConfig(_Model): - azure_key_vault_uri: str - certificate_name: str - user_assigned_identity: Optional[str] + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - azure_key_vault_uri: str, - certificate_name: str, - user_assigned_identity: Optional[str] = ... + location: str, + properties: VolumeProperties, + tags: Optional[dict[str, str]] = ..., + zones: Optional[list[str]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - 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__( + def __setattr__( self, - *, - azure_key_vault_uri: Optional[str] = ..., - certificate_name: Optional[str] = ..., - user_assigned_identity: Optional[str] = ... + key: str, + value: Any ) -> None: ... - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - class azure.mgmt.netapp.models.EntraIdConfig(_Model): - application_id: str - domain: str - entra_id_akv_config: Optional[EntraIdAkvConfig] - server_name_prefix: str + class azure.mgmt.netapp.models.VolumeBackupProperties(_Model): + backup_policy_id: Optional[str] + backup_vault_id: Optional[str] + policy_enforced: Optional[bool] @overload def __init__( self, *, - application_id: str, - domain: str, - entra_id_akv_config: Optional[EntraIdAkvConfig] = ..., - server_name_prefix: str + backup_policy_id: Optional[str] = ..., + backup_vault_id: Optional[str] = ..., + policy_enforced: Optional[bool] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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] + 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 __init__( self, *, - application_id: Optional[str] = ..., - domain: Optional[str] = ..., - entra_id_akv_config: Optional[EntraIdAkvConfigPatch] = ..., - server_name_prefix: Optional[str] = ... + backups_count: Optional[int] = ..., + policy_enabled: Optional[bool] = ..., + volume_name: Optional[str] = ..., + volume_resource_id: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.ErrorAdditionalInfo(_Model): - info: Optional[Any] + class azure.mgmt.netapp.models.VolumeGroup(_Model): + id: Optional[str] + location: Optional[str] + name: Optional[str] + properties: Optional[VolumeGroupListProperties] 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.ErrorResponse(_Model): - error: Optional[ErrorDetail] + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - error: Optional[ErrorDetail] = ... + location: Optional[str] = ..., + properties: Optional[VolumeGroupListProperties] = ... ) -> 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.VolumeGroupDetails(ProxyResource): + id: str + location: Optional[str] + name: str + properties: Optional[VolumeGroupProperties] + 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] = ... + location: Optional[str] = ..., + properties: Optional[VolumeGroupProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, 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" + def __setattr__( + self, + key: str, + value: Any + ) -> None: ... - class azure.mgmt.netapp.models.FilePathAvailabilityRequest(_Model): - availability_zone: Optional[str] - name: str - subnet_id: str + class azure.mgmt.netapp.models.VolumeGroupListProperties(_Model): + group_meta_data: Optional[VolumeGroupMetaData] + provisioning_state: Optional[str] @overload def __init__( self, *, - availability_zone: Optional[str] = ..., - name: str, - subnet_id: str + group_meta_data: Optional[VolumeGroupMetaData] = ... ) -> 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] + 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 __init__( self, *, - cifs_user: Optional[CifsUser] = ..., - nfs_user: Optional[NfsUser] = ... + application_identifier: Optional[str] = ..., + application_type: Optional[Union[str, ApplicationType]] = ..., + global_placement_rules: Optional[list[PlacementKeyValuePairs]] = ..., + group_description: Optional[str] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - class azure.mgmt.netapp.models.GetGroupIdListForLDAPUserRequest(_Model): - username: str + class azure.mgmt.netapp.models.VolumeGroupProperties(_Model): + group_meta_data: Optional[VolumeGroupMetaData] + provisioning_state: Optional[str] + volumes: Optional[list[VolumeGroupVolumeProperties]] @overload def __init__( self, *, - username: str + group_meta_data: Optional[VolumeGroupMetaData] = ..., + volumes: Optional[list[VolumeGroupVolumeProperties]] = ... ) -> 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.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 __init__( self, *, - group_ids_for_ldap_user: Optional[list[str]] = ... + name: Optional[str] = ..., + properties: VolumeProperties, + tags: Optional[dict[str, str]] = ..., + zones: Optional[list[str]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - class azure.mgmt.netapp.models.GetKeyVaultStatusResponse(_Model): - properties: Optional[GetKeyVaultStatusResponseProperties] + def __setattr__( + self, + 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: ... @@ -6563,7 +6416,9 @@ namespace azure.mgmt.netapp.models def __init__( self, *, - properties: Optional[GetKeyVaultStatusResponseProperties] = ... + location: Optional[str] = ..., + properties: Optional[VolumePatchProperties] = ..., + tags: Optional[dict[str, str]] = ... ) -> None: ... @overload @@ -6576,366 +6431,378 @@ 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.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 __init__( self, *, - key_name: Optional[str] = ..., - key_vault_private_endpoints: Optional[list[KeyVaultPrivateEndpoint]] = ..., - key_vault_resource_id: Optional[str] = ..., - key_vault_uri: 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] = ..., + 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 __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.VolumePatchPropertiesDataProtection(_Model): + backup: Optional[VolumeBackupProperties] + ransomware_protection: Optional[RansomwareProtectionPatchSettings] + snapshot: Optional[VolumeSnapshotProperties] @overload def __init__( self, *, - minute: Optional[int] = ..., - snapshots_to_keep: Optional[int] = ..., - used_bytes: Optional[int] = ... + backup: Optional[VolumeBackupProperties] = ..., + ransomware_protection: Optional[RansomwareProtectionPatchSettings] = ..., + snapshot: Optional[VolumeSnapshotProperties] = ... ) -> 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.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] + class azure.mgmt.netapp.models.VolumePatchPropertiesExportPolicy(_Model): + rules: Optional[list[ExportPolicyRule]] @overload def __init__( self, *, - private_endpoint_id: Optional[str] = ..., - virtual_network_id: Optional[str] = ... + rules: Optional[list[ExportPolicyRule]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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]] + 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] @overload def __init__( self, *, - 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.KeyVaultStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): - CREATED = "Created" - DELETED = "Deleted" - ERROR = "Error" - IN_USE = "InUse" - UPDATING = "Updating" - + 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] = ... + ) -> None: ... - class azure.mgmt.netapp.models.LargeVolumeType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - EXTRA_LARGE_VOLUME7_DOT2_PI_B = "PremExtraLargeVolume7Dot2PiB" - LARGE_VOLUME = "LargeVolume" + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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_port: Optional[int] - ldap_servers: Optional[list[str]] - net_group_dn: Optional[str] - secure_ldap_type: Optional[Union[str, SecureLdapType]] - server_ca_certificate: Optional[str] - user_dn: Optional[str] + 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, *, - 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_port: Optional[int] = ..., - ldap_servers: Optional[list[str]] = ..., - net_group_dn: Optional[str] = ..., - secure_ldap_type: Optional[Union[str, SecureLdapType]] = ..., - server_ca_certificate: Optional[str] = ..., - user_dn: Optional[str] = ... + backup: Optional[VolumeBackupProperties] = ..., + ransomware_protection: Optional[RansomwareProtectionSettings] = ..., + replication: Optional[ReplicationObject] = ..., + snapshot: Optional[VolumeSnapshotProperties] = ..., + volume_relocation: Optional[VolumeRelocationProperties] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, Any]) -> None: ... - 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_port: Optional[int] - ldap_servers: Optional[list[str]] - net_group_dn: Optional[str] - secure_ldap_type: Optional[Union[str, SecureLdapType]] - server_ca_certificate: Optional[str] - user_dn: Optional[str] + class azure.mgmt.netapp.models.VolumePropertiesExportPolicy(_Model): + rules: Optional[list[ExportPolicyRule]] @overload def __init__( self, *, - 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_port: Optional[int] = ..., - ldap_servers: Optional[list[str]] = ..., - net_group_dn: Optional[str] = ..., - secure_ldap_type: Optional[Union[str, SecureLdapType]] = ..., - server_ca_certificate: Optional[str] = ..., - user_dn: Optional[str] = ... + rules: Optional[list[ExportPolicyRule]] = ... ) -> None: ... @overload def __init__(self, mapping: Mapping[str, 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.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, *, - group_dn: Optional[str] = ..., - group_membership_filter: Optional[str] = ..., - user_dn: Optional[str] = ... + location: str, + properties: Optional[VolumeQuotaRulesProperties] = ..., + 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.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.VolumeQuotaRulePatch(_Model): + properties: Optional[VolumeQuotaRulesProperties] + tags: Optional[dict[str, str]] - class azure.mgmt.netapp.models.ListQuotaReportResponse(_Model): - quota_report_records: Optional[list[QuotaReport]] + def __getattr__(self, name: str) -> Any: ... @overload def __init__( self, *, - quota_report_records: Optional[list[QuotaReport]] = ... + properties: Optional[VolumeQuotaRulesProperties] = ..., + 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.ListQuotaReportResult(_Model): - properties: Optional[ListQuotaReportResponse] + 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, *, - properties: Optional[ListQuotaReportResponse] = ... + 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.ListReplicationsRequest(_Model): - exclude: Optional[Union[str, Exclude]] + class azure.mgmt.netapp.models.VolumeRelocationProperties(_Model): + ready_to_be_finalized: Optional[bool] + relocation_requested: Optional[bool] @overload def __init__( self, *, - exclude: Optional[Union[str, Exclude]] = ... + relocation_requested: Optional[bool] = ... ) -> 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.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, *, - display_name: Optional[str] = ..., - name: Optional[str] = ... + snapshot_id: Optional[str] = ... ) -> 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.VolumeSnapshotProperties(_Model): + snapshot_policy_id: Optional[str] @overload def __init__( self, *, - type: Union[str, ManagedServiceIdentityType], - user_assigned_identities: Optional[dict[str, UserAssignedIdentity]] = ... + snapshot_policy_id: Optional[str] = ... ) -> 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.MetricAggregationType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - AVERAGE = "Average" + class azure.mgmt.netapp.models.VolumeStorageToNetworkProximity(str, Enum, metaclass=CaseInsensitiveEnumMeta): + ACROSS_T2 = "AcrossT2" + DEFAULT = "Default" + T1 = "T1" + T2 = "T2" - 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] + 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, *, - 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 __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__( - self, - *, - days_of_month: Optional[str] = ..., + day: Optional[str] = ..., hour: Optional[int] = ..., minute: Optional[int] = ..., snapshots_to_keep: Optional[int] = ..., @@ -6946,2116 +6813,1836 @@ namespace azure.mgmt.netapp.models 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] +namespace azure.mgmt.netapp.operations + + class azure.mgmt.netapp.operations.AccountsOperations: - @overload def __init__( self, - *, - file_system_id: str, - smb_server_fqdn: Optional[str] = ... + *args, + **kwargs ) -> 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.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 __init__( + def begin_change_key_vault( self, + resource_group_name: str, + account_name: str, + body: Optional[ChangeKeyVault] = None, *, - identity: Optional[ManagedServiceIdentity] = ..., - location: str, - properties: Optional[AccountProperties] = ..., - tags: Optional[dict[str, str]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_change_key_vault( self, - key: str, - value: Any - ) -> None: ... - - - class azure.mgmt.netapp.models.NetAppAccountPatch(_Model): - identity: Optional[ManagedServiceIdentity] - properties: Optional[AccountPropertiesPatch] - tags: Optional[dict[str, str]] - - def __getattr__(self, name: str) -> Any: ... + resource_group_name: str, + account_name: str, + body: Optional[ChangeKeyVault] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_change_key_vault( self, + resource_group_name: str, + account_name: str, + body: Optional[IO[bytes]] = None, *, - identity: Optional[ManagedServiceIdentity] = ..., - properties: Optional[AccountPropertiesPatch] = ..., - tags: Optional[dict[str, str]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_create_or_update( 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.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] + resource_group_name: str, + account_name: str, + body: NetAppAccount, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetAppAccount]: ... @overload - def __init__( + def begin_create_or_update( self, + resource_group_name: str, + account_name: str, + body: NetAppAccount, *, - 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: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetAppAccount]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + def begin_create_or_update( + self, + resource_group_name: str, + account_name: str, + body: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetAppAccount]: ... + @distributed_trace + def begin_delete( + self, + resource_group_name: str, + account_name: str, + **kwargs: Any + ) -> LROPoller[None]: ... - class azure.mgmt.netapp.models.NetworkSiblingSetProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): - CANCELED = "Canceled" - FAILED = "Failed" - SUCCEEDED = "Succeeded" - UPDATING = "Updating" + @distributed_trace + def begin_get_change_key_vault_information( + self, + resource_group_name: str, + account_name: str, + **kwargs: Any + ) -> LROPoller[GetKeyVaultStatusResponse]: ... + @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', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + def begin_refresh_ldap_bind_password( + self, + resource_group_name: str, + account_name: str, + **kwargs: Any + ) -> LROPoller[None]: ... - class azure.mgmt.netapp.models.NfsUser(_Model): - group_id: Optional[int] - user_id: Optional[int] + @distributed_trace + def begin_renew_credentials( + self, + resource_group_name: str, + account_name: str, + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_transition_to_cmk( self, + resource_group_name: str, + account_name: str, + body: Optional[EncryptionTransitionRequest] = None, *, - group_id: Optional[int] = ..., - user_id: Optional[int] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - 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]] + 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]: ... @overload - def __init__( + def begin_transition_to_cmk( self, + resource_group_name: str, + account_name: str, + body: Optional[IO[bytes]] = None, *, - volume_resource_ids: Optional[list[str]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[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: ... - - @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + body: NetAppAccountPatch, *, - display: Optional[OperationDisplay] = ..., - name: Optional[str] = ..., - origin: Optional[str] = ..., - properties: Optional[OperationProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetAppAccount]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_update( self, - key: str, - value: Any - ) -> None: ... - - - class azure.mgmt.netapp.models.OperationDisplay(_Model): - description: Optional[str] - operation: Optional[str] - provider: Optional[str] - resource: Optional[str] + resource_group_name: str, + account_name: str, + body: NetAppAccountPatch, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetAppAccount]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + body: IO[bytes], *, - description: Optional[str] = ..., - operation: Optional[str] = ..., - provider: Optional[str] = ..., - resource: Optional[str] = ... - ) -> None: ... - - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetAppAccount]: ... - class azure.mgmt.netapp.models.OperationProperties(_Model): - service_specification: Optional[ServiceSpecification] + @distributed_trace + def get( + self, + resource_group_name: str, + account_name: str, + **kwargs: Any + ) -> NetAppAccount: ... - @overload - def __init__( + @distributed_trace + def list( self, - *, - service_specification: Optional[ServiceSpecification] = ... - ) -> None: ... + resource_group_name: str, + **kwargs: Any + ) -> ItemPaged[NetAppAccount]: ... - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + @distributed_trace + def list_by_subscription(self, **kwargs: Any) -> ItemPaged[NetAppAccount]: ... - 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.operations.BackupPoliciesOperations: - @overload def __init__( self, - *, - peer_addresses: list[str], - peer_cluster_name: str, - peer_volume_name: str, - peer_vserver_name: str + *args, + **kwargs ) -> None: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - - class azure.mgmt.netapp.models.PeerClusterForVolumeMigrationRequest(_Model): - peer_ip_addresses: list[str] + 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 __init__( + def begin_create( self, + resource_group_name: str, + account_name: str, + backup_policy_name: str, + body: BackupPolicy, *, - peer_ip_addresses: list[str] - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[BackupPolicy]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - + 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]: ... - class azure.mgmt.netapp.models.PeeringPassphrases(_Model): - cluster_peering_command: str - cluster_peering_passphrase: str - critical_warning: Optional[str] - vserver_peering_command: str + @distributed_trace + def begin_delete( + self, + resource_group_name: str, + account_name: str, + backup_policy_name: str, + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + backup_policy_name: str, + body: BackupPolicyPatch, *, - cluster_peering_command: str, - cluster_peering_passphrase: str, - vserver_peering_command: str - ) -> None: ... - - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - - class azure.mgmt.netapp.models.PlacementKeyValuePairs(_Model): - key: str - value: str + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[BackupPolicy]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + backup_policy_name: str, + body: BackupPolicyPatch, *, - key: str, - value: str - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[BackupPolicy]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + 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: ... - class azure.mgmt.netapp.models.PolicyStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): - DISABLED = "Disabled" - ENABLED = "Enabled" + @distributed_trace + def list( + self, + resource_group_name: str, + account_name: str, + **kwargs: Any + ) -> ItemPaged[BackupPolicy]: ... - class azure.mgmt.netapp.models.PoolChangeRequest(_Model): - new_pool_resource_id: str + class azure.mgmt.netapp.operations.BackupVaultsOperations: - @overload def __init__( self, - *, - new_pool_resource_id: str + *args, + **kwargs ) -> 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] + 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 __init__( + def begin_create_or_update( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + body: BackupVault, *, - cool_access: Optional[bool] = ..., - custom_throughput_mibps: Optional[int] = ..., - qos_type: Optional[Union[str, QosType]] = ..., - size: Optional[int] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[BackupVault]: ... @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] - - @overload - def __init__( + def begin_create_or_update( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + body: IO[bytes], *, - 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 __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" - + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[BackupVault]: ... - class azure.mgmt.netapp.models.QueryNetworkSiblingSetRequest(_Model): - network_sibling_set_id: str - subnet_id: str + @distributed_trace + def begin_delete( + self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + body: BackupVaultPatch, *, - network_sibling_set_id: str, - subnet_id: str - ) -> 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] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[BackupVault]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + body: BackupVaultPatch, *, - name: str, - resource_group: str, - type: Union[str, CheckQuotaNameResourceTypes] - ) -> 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 - - def __getattr__(self, name: str) -> Any: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[BackupVault]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + body: IO[bytes], *, - properties: Optional[QuotaItemProperties] = ... - ) -> None: ... - - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[BackupVault]: ... - def __setattr__( + @distributed_trace + def get( self, - key: str, - value: Any - ) -> None: ... - + resource_group_name: str, + account_name: str, + backup_vault_name: str, + **kwargs: Any + ) -> BackupVault: ... - class azure.mgmt.netapp.models.QuotaItemProperties(_Model): - current: Optional[int] - default: Optional[int] - usage: Optional[int] + @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.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.operations.BackupsOperations: - @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]] = ... + *args, + **kwargs ) -> 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] - - @overload - def __init__( + def begin_create( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + backup_name: str, + body: Backup, *, - quota_target: Optional[str] = ..., - quota_type: Optional[Union[str, QuotaType]] = ..., - usage_threshold_percentage: Optional[int] = ... - ) -> 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]] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Backup]: ... @overload - def __init__( + def begin_create( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + backup_name: str, + body: Backup, *, - desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Backup]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - + 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]: ... - class azure.mgmt.netapp.models.RansomwareProtectionSettings(_Model): - actual_ransomware_protection_state: Optional[Union[str, ActualRansomwareProtectionState]] - desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] + @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 __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + backup_name: str, + body: Optional[BackupPatch] = None, *, - desired_ransomware_protection_state: Optional[Union[str, DesiredRansomwareProtectionState]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Backup]: ... @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 - - @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + backup_name: str, + body: Optional[BackupPatch] = None, *, - properties: Optional[RansomwareReportProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Backup]: ... @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.RansomwareReportSeverity(str, Enum, metaclass=CaseInsensitiveEnumMeta): - HIGH = "High" - LOW = "Low" - MODERATE = "Moderate" - NONE = "None" - - - 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" - + 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]: ... - class azure.mgmt.netapp.models.RansomwareSuspects(_Model): - extension: Optional[str] - file_count: Optional[int] - resolution: Optional[Union[str, RansomwareSuspectResolution]] - suspect_files: Optional[list[SuspectFile]] + @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: ... - class azure.mgmt.netapp.models.RansomwareSuspectsClearRequest(_Model): - extensions: list[str] - resolution: Union[str, RansomwareSuspectResolution] + @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: ... - @overload - def __init__( + @distributed_trace + def list_by_vault( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, *, - extensions: list[str], - resolution: Union[str, RansomwareSuspectResolution] - ) -> None: ... - - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + filter: Optional[str] = ..., + **kwargs: Any + ) -> ItemPaged[Backup]: ... - class azure.mgmt.netapp.models.ReestablishReplicationRequest(_Model): - source_volume_id: Optional[str] + class azure.mgmt.netapp.operations.BackupsUnderAccountOperations: - @overload def __init__( self, - *, - source_volume_id: Optional[str] = ... + *args, + **kwargs ) -> 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]] + 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 __init__( + def begin_migrate_backups( self, + resource_group_name: str, + account_name: str, + body: BackupsMigrationRequest, *, - availability_zone_mappings: Optional[list[RegionInfoAvailabilityZoneMappingsItem]] = ..., - storage_to_network_proximity: Optional[Union[str, RegionStorageToNetworkProximity]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + 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.models.RegionInfoAvailabilityZoneMappingsItem(_Model): - availability_zone: Optional[str] - is_available: Optional[bool] + class azure.mgmt.netapp.operations.BackupsUnderBackupVaultOperations: - @overload def __init__( self, - *, - availability_zone: Optional[str] = ..., - is_available: Optional[bool] = ... + *args, + **kwargs ) -> None: ... @overload - 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: ... + 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 __init__( + def begin_restore_files( self, + resource_group_name: str, + account_name: str, + backup_vault_name: str, + backup_name: str, + body: BackupRestoreFiles, *, - properties: Optional[RegionInfo] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_restore_files( self, - 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" + 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.models.RelocateVolumeRequest(_Model): - creation_token: Optional[str] + class azure.mgmt.netapp.operations.BackupsUnderVolumeOperations: - @overload def __init__( self, - *, - creation_token: Optional[str] = ... + *args, + **kwargs ) -> 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 - - @overload - def __init__( + def begin_migrate_backups( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: BackupsMigrationRequest, *, - external_host_name: str, - server_name: str, - volume_name: str - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[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]] - - @overload - def __init__( + def begin_migrate_backups( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + body: BackupsMigrationRequest, *, - endpoint_type: Optional[Union[str, EndpointType]] = ..., - remote_volume_region: Optional[str] = ..., - remote_volume_resource_id: Optional[str] = ..., - replication_schedule: Optional[Union[str, ReplicationSchedule]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[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" + 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.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.operations.BucketsOperations: - @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]] = ... + *args, + **kwargs ) -> 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.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] + 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 __init__( + def begin_create_or_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, + body: Bucket, *, - error_message: Optional[str] = ..., - healthy: Optional[bool] = ..., - mirror_state: Optional[Union[str, MirrorState]] = ..., - relationship_status: Optional[Union[str, VolumeReplicationRelationshipStatus]] = ..., - total_progress: Optional[str] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Bucket]: ... @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.Resource(_Model): - id: Optional[str] - name: Optional[str] - system_data: Optional[SystemData] - type: Optional[str] - + 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.ResourceNameAvailabilityRequest(_Model): - name: str - resource_group: str - type: Union[str, CheckNameResourceTypes] + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-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 __init__( + def begin_generate_akv_credentials( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, + body: BucketCredentialsExpiry, *, - name: str, - resource_group: str, - type: Union[str, CheckNameResourceTypes] - ) -> 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.SecretPassword(_Model): - identity: Optional[SecretPasswordIdentity] - key_vault_properties: Optional[SecretPasswordKeyVaultProperties] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_generate_akv_credentials( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, + body: BucketCredentialsExpiry, *, - identity: Optional[SecretPasswordIdentity] = ..., - key_vault_properties: Optional[SecretPasswordKeyVaultProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - + 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]: ... - class azure.mgmt.netapp.models.SecretPasswordIdentity(_Model): - principal_id: Optional[str] - user_assigned_identity: Optional[str] + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-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]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, + body: BucketPatch, *, - user_assigned_identity: Optional[str] = ... - ) -> None: ... - - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - - class azure.mgmt.netapp.models.SecretPasswordKeyVaultProperties(_Model): - key_vault_uri: str - secret_name: str + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Bucket]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, + body: BucketPatch, *, - key_vault_uri: str, - secret_name: str - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Bucket]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - - class azure.mgmt.netapp.models.SecureLdapType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - LDAP_OVER_TLS = "LdapOverTLS" - NONE = "None" - - - 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]] + 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 __init__( + def generate_credentials( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, + body: BucketCredentialsExpiry, *, - log_specifications: Optional[list[LogSpecification]] = ..., - metric_specifications: Optional[list[MetricSpecification]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> BucketGenerateCredentials: ... @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.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]] + 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 __init__( + def generate_credentials( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, + body: IO[bytes], *, - smb_access_based_enumeration: Optional[Union[str, SmbAccessBasedEnumeration]] = ..., - smb_encryption: Optional[Union[str, SmbEncryptionState]] = ..., - smb_non_browsable: Optional[Union[str, SmbNonBrowsable]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> BucketGenerateCredentials: ... - @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', '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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + 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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-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.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.operations.CachesOperations: - @overload def __init__( self, - *, - location: str, - properties: Optional[SnapshotProperties] = ... + *args, + **kwargs ) -> None: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_create_or_update( self, - key: str, - value: Any - ) -> None: ... - - - class azure.mgmt.netapp.models.SnapshotDirectoryVisibility(str, Enum, metaclass=CaseInsensitiveEnumMeta): - HIDDEN = "Hidden" - VISIBLE = "Visible" - - - class azure.mgmt.netapp.models.SnapshotPatch(_Model): - - - 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: ... + 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 __init__( + def begin_create_or_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + cache_name: str, + body: Cache, *, - location: str, - properties: SnapshotPolicyProperties, - tags: Optional[dict[str, str]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Cache]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_create_or_update( self, - 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] + 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 __getattr__(self, name: str) -> Any: ... + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + def begin_delete( + self, + resource_group_name: str, + account_name: str, + pool_name: str, + cache_name: str, + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_pool_change( self, + resource_group_name: str, + account_name: str, + pool_name: str, + cache_name: str, + body: PoolChangeRequest, *, - location: Optional[str] = ..., - properties: Optional[SnapshotPolicyProperties] = ..., - tags: Optional[dict[str, str]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Cache]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_pool_change( self, - key: str, - value: Any - ) -> None: ... - - - 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] + 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 __init__( + def begin_pool_change( self, - *, - daily_schedule: Optional[DailySchedule] = ..., - enabled: Optional[bool] = ..., - hourly_schedule: Optional[HourlySchedule] = ..., - monthly_schedule: Optional[MonthlySchedule] = ..., - weekly_schedule: Optional[WeeklySchedule] = ... - ) -> None: ... - - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - + 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]: ... - class azure.mgmt.netapp.models.SnapshotPolicyVolumeList(_Model): - next_link: Optional[str] - value: list[Volume] + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-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__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + cache_name: str, + body: CacheUpdate, *, - next_link: Optional[str] = ..., - value: list[Volume] - ) -> 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] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Cache]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + cache_name: str, + body: CacheUpdate, *, - destination_path: Optional[str] = ..., - file_paths: list[str] - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Cache]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + 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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + def get( + self, + resource_group_name: str, + account_name: str, + pool_name: str, + cache_name: str, + **kwargs: Any + ) -> Cache: ... - class azure.mgmt.netapp.models.SnapshotUsage(str, Enum, metaclass=CaseInsensitiveEnumMeta): - CREATE_NEW_SNAPSHOT = "CreateNewSnapshot" - USE_EXISTING_SNAPSHOT = "UseExistingSnapshot" + @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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-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.SubvolumeInfo(ProxyResource): - id: str - name: str - properties: Optional[SubvolumeProperties] - system_data: SystemData - type: str - def __getattr__(self, name: str) -> Any: ... + class azure.mgmt.netapp.operations.NetAppResourceOperations: - @overload def __init__( self, - *, - properties: Optional[SubvolumeProperties] = ... + *args, + **kwargs ) -> None: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_update_network_sibling_set( self, - key: str, - value: 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: ... + location: str, + body: UpdateNetworkSiblingSetRequest, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetworkSiblingSet]: ... @overload - def __init__( + def begin_update_network_sibling_set( self, + location: str, + body: UpdateNetworkSiblingSetRequest, *, - properties: Optional[SubvolumeModelProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetworkSiblingSet]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_update_network_sibling_set( 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] + location: str, + body: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[NetworkSiblingSet]: ... @overload - def __init__( + def check_file_path_availability( self, + location: str, + body: FilePathAvailabilityRequest, *, - 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: ... + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - - class azure.mgmt.netapp.models.SubvolumePatchParams(_Model): - path: Optional[str] - size: Optional[int] + def check_file_path_availability( + self, + location: str, + body: FilePathAvailabilityRequest, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @overload - def __init__( + def check_file_path_availability( self, + location: str, + body: IO[bytes], *, - path: Optional[str] = ..., - size: Optional[int] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @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: ... + def check_name_availability( + self, + location: str, + body: ResourceNameAvailabilityRequest, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @overload - def __init__( + def check_name_availability( self, + location: str, + body: ResourceNameAvailabilityRequest, *, - properties: Optional[SubvolumePatchParams] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def check_name_availability( 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] + location: str, + body: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @overload - def __init__( + def check_quota_availability( self, + location: str, + body: QuotaAvailabilityRequest, *, - parent_path: Optional[str] = ..., - path: Optional[str] = ..., - size: Optional[int] = ... - ) -> 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] + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @overload - def __init__( + def check_quota_availability( self, + location: str, + body: QuotaAvailabilityRequest, *, - properties: Optional[SvmPeerCommandResponseProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - - class azure.mgmt.netapp.models.SvmPeerCommandResponseProperties(_Model): - svm_peering_command: Optional[str] + def check_quota_availability( + self, + location: str, + body: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> CheckAvailabilityResponse: ... @overload - def __init__( + def query_network_sibling_set( self, + location: str, + body: QueryNetworkSiblingSetRequest, *, - svm_peering_command: Optional[str] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> NetworkSiblingSet: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - - 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]] + def query_network_sibling_set( + self, + location: str, + body: QueryNetworkSiblingSetRequest, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> NetworkSiblingSet: ... @overload - def __init__( + def query_network_sibling_set( self, + location: str, + body: IO[bytes], *, - 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: ... + content_type: str = "application/json", + **kwargs: Any + ) -> NetworkSiblingSet: ... - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + @distributed_trace + def query_region_info( + self, + location: str, + **kwargs: Any + ) -> RegionInfo: ... - 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.operations.NetAppResourceQuotaLimitsAccountOperations: - @overload def __init__( self, - *, - location: str, - tags: Optional[dict[str, str]] = ... + *args, + **kwargs ) -> None: ... - @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', '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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + 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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + def list( + self, + resource_group_name: str, + account_name: str, + **kwargs: Any + ) -> ItemPaged[QuotaItem]: ... - 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.operations.NetAppResourceQuotaLimitsOperations: - @overload def __init__( self, - *, - network_features: Union[str, NetworkFeatures], - network_sibling_set_id: str, - network_sibling_set_state_id: str, - subnet_id: str + *args, + **kwargs ) -> None: ... - @overload - def __init__(self, mapping: Mapping[str, Any]) -> 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.models.UsageName(_Model): - localized_value: Optional[str] - value: Optional[str] + class azure.mgmt.netapp.operations.NetAppResourceRegionInfosOperations: - @overload def __init__( self, - *, - localized_value: Optional[str] = ..., - value: Optional[str] = ... + *args, + **kwargs ) -> 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] + @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.models.UsageResult(_Model): - id: Optional[str] - name: Optional[UsageName] - properties: Optional[UsageProperties] - def __getattr__(self, name: str) -> Any: ... + class azure.mgmt.netapp.operations.NetAppResourceUsagesOperations: - @overload def __init__( self, - *, - properties: Optional[UsageProperties] = ... + *args, + **kwargs ) -> None: ... - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + @distributed_trace + def get( + self, + location: str, + usage_type: str, + **kwargs: Any + ) -> UsageResult: ... - def __setattr__( + @distributed_trace + def list( self, - key: str, - value: Any - ) -> None: ... + location: str, + **kwargs: Any + ) -> ItemPaged[UsageResult]: ... - class azure.mgmt.netapp.models.UserAssignedIdentity(_Model): - client_id: Optional[str] - principal_id: Optional[str] + class azure.mgmt.netapp.operations.Operations: + def __init__( + self, + *args, + **kwargs + ) -> None: ... - 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]] + @distributed_trace + def list(self, **kwargs: Any) -> ItemPaged[Operation]: ... - def __getattr__(self, name: str) -> Any: ... - @overload + class azure.mgmt.netapp.operations.PoolsOperations: + def __init__( self, - *, - location: str, - properties: VolumeProperties, - tags: Optional[dict[str, str]] = ..., - zones: Optional[list[str]] = ... + *args, + **kwargs ) -> None: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_create_or_update( 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] + resource_group_name: str, + account_name: str, + pool_name: str, + body: CapacityPool, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[CapacityPool]: ... @overload - def __init__( + def begin_create_or_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + body: CapacityPool, *, - backup_policy_id: Optional[str] = ..., - backup_vault_id: Optional[str] = ..., - policy_enforced: Optional[bool] = ... - ) -> 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] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[CapacityPool]: ... @overload - def __init__( + def begin_create_or_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + body: IO[bytes], *, - backups_count: Optional[int] = ..., - policy_enabled: Optional[bool] = ..., - volume_name: Optional[str] = ..., - volume_resource_id: Optional[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] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[CapacityPool]: ... - def __getattr__(self, name: str) -> Any: ... + @distributed_trace + def begin_delete( + self, + resource_group_name: str, + account_name: str, + pool_name: str, + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + body: CapacityPoolPatch, *, - location: Optional[str] = ..., - properties: Optional[VolumeGroupListProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[CapacityPool]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_update( self, - 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: ... + resource_group_name: str, + account_name: str, + pool_name: str, + body: CapacityPoolPatch, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[CapacityPool]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + body: IO[bytes], *, - location: Optional[str] = ..., - properties: Optional[VolumeGroupProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[CapacityPool]: ... - @overload - 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: ... - def __setattr__( + @distributed_trace + def list( self, - key: str, - value: Any - ) -> None: ... + resource_group_name: str, + account_name: str, + **kwargs: Any + ) -> ItemPaged[CapacityPool]: ... - class azure.mgmt.netapp.models.VolumeGroupListProperties(_Model): - group_meta_data: Optional[VolumeGroupMetaData] - provisioning_state: Optional[str] + class azure.mgmt.netapp.operations.RansomwareReportsOperations: - @overload def __init__( self, - *, - group_meta_data: Optional[VolumeGroupMetaData] = ... + *args, + **kwargs ) -> 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] - - @overload - def __init__( + def begin_clear_suspects( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + ransomware_report_name: str, + body: RansomwareSuspectsClearRequest, *, - application_identifier: Optional[str] = ..., - application_type: Optional[Union[str, ApplicationType]] = ..., - global_placement_rules: Optional[list[PlacementKeyValuePairs]] = ..., - group_description: Optional[str] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[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]] + 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 __init__( + 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], *, - group_meta_data: Optional[VolumeGroupMetaData] = ..., - volumes: Optional[list[VolumeGroupVolumeProperties]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... - @overload - 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', '2026-05-15-preview', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-01']) + 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', '2026-06-01', '2026-06-15-preview', '2026-07-01', '2026-07-15-preview', '2026-08-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.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.operations.SnapshotPoliciesOperations: - @overload def __init__( self, - *, - name: Optional[str] = ..., - properties: VolumeProperties, - tags: Optional[dict[str, str]] = ..., - zones: Optional[list[str]] = ... + *args, + **kwargs ) -> None: ... - @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + @distributed_trace + def begin_delete( self, - 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: ... + resource_group_name: str, + account_name: str, + snapshot_policy_name: str, + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + snapshot_policy_name: str, + body: SnapshotPolicyPatch, *, - location: Optional[str] = ..., - properties: Optional[VolumePatchProperties] = ..., - tags: Optional[dict[str, str]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[SnapshotPolicy]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_update( self, - 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] + resource_group_name: str, + account_name: str, + snapshot_policy_name: str, + body: SnapshotPolicyPatch, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[SnapshotPolicy]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + snapshot_policy_name: str, + body: IO[bytes], *, - 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: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[SnapshotPolicy]: ... @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] + 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 __init__( + def create( self, + resource_group_name: str, + account_name: str, + snapshot_policy_name: str, + body: SnapshotPolicy, *, - backup: Optional[VolumeBackupProperties] = ..., - ransomware_protection: Optional[RansomwareProtectionPatchSettings] = ..., - snapshot: Optional[VolumeSnapshotProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> SnapshotPolicy: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... + 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]: ... - class azure.mgmt.netapp.models.VolumePatchPropertiesExportPolicy(_Model): - rules: Optional[list[ExportPolicyRule]] + @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: - @overload def __init__( self, - *, - rules: Optional[list[ExportPolicyRule]] = ... + *args, + **kwargs ) -> 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] - 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 __init__( + def begin_create( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: Snapshot, *, - 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 __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] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Snapshot]: ... @overload - def __init__( + def begin_create( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: Snapshot, *, - backup: Optional[VolumeBackupProperties] = ..., - ransomware_protection: Optional[RansomwareProtectionSettings] = ..., - replication: Optional[ReplicationObject] = ..., - snapshot: Optional[VolumeSnapshotProperties] = ..., - volume_relocation: Optional[VolumeRelocationProperties] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Snapshot]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - + 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]: ... - class azure.mgmt.netapp.models.VolumePropertiesExportPolicy(_Model): - rules: Optional[list[ExportPolicyRule]] + @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 __init__( + def begin_restore_files( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: SnapshotRestoreFiles, *, - rules: Optional[list[ExportPolicyRule]] = ... - ) -> None: ... - - @overload - 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: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__( + def begin_restore_files( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: SnapshotRestoreFiles, *, - location: str, - properties: Optional[VolumeQuotaRulesProperties] = ..., - tags: Optional[dict[str, str]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: ... @overload - def __init__(self, mapping: Mapping[str, Any]) -> None: ... - - def __setattr__( + def begin_restore_files( self, - 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: ... + 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 __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: SnapshotPatch, *, - properties: Optional[VolumeQuotaRulesProperties] = ..., - tags: Optional[dict[str, str]] = ... - ) -> None: ... + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Snapshot]: ... @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__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: SnapshotPatch, *, - 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] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Snapshot]: ... @overload - def __init__( + def begin_update( self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: IO[bytes], *, - 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] + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[Snapshot]: ... - @overload - def __init__( + @distributed_trace + def get( 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] + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + **kwargs: Any + ) -> Snapshot: ... - @overload - def __init__( + @distributed_trace + def list( 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: ... - + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + **kwargs: Any + ) -> ItemPaged[Snapshot]: ... -namespace azure.mgmt.netapp.operations - class azure.mgmt.netapp.operations.AccountsOperations: + class azure.mgmt.netapp.operations.SubvolumesOperations: def __init__( self, @@ -9064,190 +8651,205 @@ namespace azure.mgmt.netapp.operations ) -> None: ... @overload - def begin_change_key_vault( + def begin_create( self, resource_group_name: str, account_name: str, - body: Optional[ChangeKeyVault] = None, + pool_name: str, + volume_name: str, + subvolume_name: str, + body: SubvolumeInfo, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: ... + ) -> LROPoller[SubvolumeInfo]: ... @overload - def begin_change_key_vault( + def begin_create( self, resource_group_name: str, account_name: str, - body: Optional[ChangeKeyVault] = None, + pool_name: str, + volume_name: str, + subvolume_name: str, + body: SubvolumeInfo, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: ... + ) -> LROPoller[SubvolumeInfo]: ... @overload - def begin_change_key_vault( + def begin_create( self, resource_group_name: str, account_name: str, - body: Optional[IO[bytes]] = None, + 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]: ... - @overload - def begin_create_or_update( + @distributed_trace + def begin_get_metadata( self, resource_group_name: str, account_name: str, - body: NetAppAccount, - *, - content_type: str = "application/json", + pool_name: str, + volume_name: str, + subvolume_name: str, **kwargs: Any - ) -> LROPoller[NetAppAccount]: ... + ) -> LROPoller[SubvolumeModel]: ... @overload - def begin_create_or_update( + def begin_update( self, resource_group_name: str, account_name: str, - body: NetAppAccount, + pool_name: str, + volume_name: str, + subvolume_name: str, + body: SubvolumePatchRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[NetAppAccount]: ... + ) -> LROPoller[SubvolumeInfo]: ... @overload - def begin_create_or_update( + def begin_update( self, resource_group_name: str, account_name: str, - body: IO[bytes], + pool_name: str, + volume_name: str, + subvolume_name: str, + body: SubvolumePatchRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[NetAppAccount]: ... + ) -> LROPoller[SubvolumeInfo]: ... - @distributed_trace - def begin_delete( + @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[None]: ... + ) -> LROPoller[SubvolumeInfo]: ... @distributed_trace - def begin_get_change_key_vault_information( + def get( self, resource_group_name: str, account_name: str, + pool_name: str, + volume_name: str, + subvolume_name: str, **kwargs: Any - ) -> LROPoller[GetKeyVaultStatusResponse]: ... + ) -> SubvolumeInfo: ... @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', '2026-06-15-preview']) - def begin_refresh_ldap_bind_password( + def list_by_volume( self, resource_group_name: str, account_name: str, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> LROPoller[None]: ... + ) -> ItemPaged[SubvolumeInfo]: ... - @distributed_trace - def begin_renew_credentials( + + class azure.mgmt.netapp.operations.VolumeGroupsOperations: + + def __init__( self, - resource_group_name: str, - account_name: str, - **kwargs: Any - ) -> LROPoller[None]: ... + *args, + **kwargs + ) -> None: ... @overload - def begin_transition_to_cmk( + def begin_create( self, resource_group_name: str, account_name: str, - body: Optional[EncryptionTransitionRequest] = None, + volume_group_name: str, + body: VolumeGroupDetails, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: ... + ) -> LROPoller[VolumeGroupDetails]: ... @overload - def begin_transition_to_cmk( + def begin_create( self, resource_group_name: str, account_name: str, - body: Optional[EncryptionTransitionRequest] = None, + volume_group_name: str, + body: VolumeGroupDetails, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: ... + ) -> LROPoller[VolumeGroupDetails]: ... @overload - def begin_transition_to_cmk( + def begin_create( self, resource_group_name: str, account_name: str, - body: Optional[IO[bytes]] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[None]: ... - - @overload - def begin_update( - self, - resource_group_name: str, - account_name: str, - body: NetAppAccountPatch, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> LROPoller[NetAppAccount]: ... - - @overload - def begin_update( - self, - resource_group_name: str, - account_name: str, - body: NetAppAccountPatch, + volume_group_name: str, + body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[NetAppAccount]: ... + ) -> LROPoller[VolumeGroupDetails]: ... - @overload - def begin_update( + @distributed_trace + def begin_delete( self, resource_group_name: str, account_name: str, - body: IO[bytes], - *, - content_type: str = "application/json", + volume_group_name: str, **kwargs: Any - ) -> LROPoller[NetAppAccount]: ... + ) -> LROPoller[None]: ... @distributed_trace def get( self, resource_group_name: str, account_name: str, + volume_group_name: str, **kwargs: Any - ) -> NetAppAccount: ... + ) -> VolumeGroupDetails: ... @distributed_trace - def list( + def list_by_net_app_account( self, resource_group_name: str, + account_name: str, **kwargs: Any - ) -> ItemPaged[NetAppAccount]: ... - - @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> ItemPaged[NetAppAccount]: ... + ) -> ItemPaged[VolumeGroup]: ... - class azure.mgmt.netapp.operations.ActiveDirectoryConfigsOperations: + class azure.mgmt.netapp.operations.VolumeQuotaRulesOperations: def __init__( self, @@ -9256,44 +8858,55 @@ namespace azure.mgmt.netapp.operations ) -> None: ... @overload - def begin_create_or_update( + def begin_create( self, resource_group_name: str, - active_directory_config_name: str, - body: ActiveDirectoryConfig, + account_name: str, + pool_name: str, + volume_name: str, + volume_quota_rule_name: str, + body: VolumeQuotaRule, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[ActiveDirectoryConfig]: ... + ) -> LROPoller[VolumeQuotaRule]: ... @overload - def begin_create_or_update( + def begin_create( self, resource_group_name: str, - active_directory_config_name: str, - body: ActiveDirectoryConfig, + account_name: str, + pool_name: str, + volume_name: str, + volume_quota_rule_name: str, + body: VolumeQuotaRule, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[ActiveDirectoryConfig]: ... + ) -> LROPoller[VolumeQuotaRule]: ... @overload - def begin_create_or_update( + def begin_create( self, resource_group_name: str, - active_directory_config_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[ActiveDirectoryConfig]: ... + ) -> LROPoller[VolumeQuotaRule]: ... @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', '2026-06-15-preview']) def begin_delete( self, resource_group_name: str, - active_directory_config_name: str, + account_name: str, + pool_name: str, + volume_name: str, + volume_quota_rule_name: str, **kwargs: Any ) -> LROPoller[None]: ... @@ -9301,58 +8914,67 @@ namespace azure.mgmt.netapp.operations def begin_update( self, resource_group_name: str, - active_directory_config_name: str, - body: ActiveDirectoryConfigUpdate, + account_name: str, + pool_name: str, + volume_name: str, + volume_quota_rule_name: str, + body: VolumeQuotaRulePatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[ActiveDirectoryConfig]: ... + ) -> LROPoller[VolumeQuotaRule]: ... @overload def begin_update( self, resource_group_name: str, - active_directory_config_name: str, - body: ActiveDirectoryConfigUpdate, + account_name: str, + pool_name: str, + volume_name: str, + volume_quota_rule_name: str, + body: VolumeQuotaRulePatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[ActiveDirectoryConfig]: ... + ) -> LROPoller[VolumeQuotaRule]: ... @overload def begin_update( self, resource_group_name: str, - active_directory_config_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[ActiveDirectoryConfig]: ... + ) -> LROPoller[VolumeQuotaRule]: ... @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', '2026-06-15-preview']) def get( self, resource_group_name: str, - active_directory_config_name: str, + account_name: str, + pool_name: str, + volume_name: str, + volume_quota_rule_name: str, **kwargs: Any - ) -> ActiveDirectoryConfig: ... + ) -> VolumeQuotaRule: ... @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', '2026-06-15-preview']) - def list_by_resource_group( + def list_by_volume( self, resource_group_name: str, + account_name: str, + pool_name: str, + volume_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', '2026-06-15-preview']) - def list_by_subscription(self, **kwargs: Any) -> ItemPaged[ActiveDirectoryConfig]: ... + ) -> ItemPaged[VolumeQuotaRule]: ... - class azure.mgmt.netapp.operations.BackupPoliciesOperations: + class azure.mgmt.netapp.operations.VolumesOperations: def __init__( self, @@ -9360,586 +8982,531 @@ namespace azure.mgmt.netapp.operations **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_create( + def begin_authorize_replication( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: BackupPolicy, + pool_name: str, + volume_name: str, + body: AuthorizeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupPolicy]: ... + ) -> LROPoller[None]: ... @overload - def begin_create( + def begin_authorize_replication( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: BackupPolicy, + pool_name: str, + volume_name: str, + body: AuthorizeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupPolicy]: ... + ) -> LROPoller[None]: ... @overload - def begin_create( + def begin_authorize_replication( self, resource_group_name: str, account_name: str, - backup_policy_name: str, + pool_name: str, + volume_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupPolicy]: ... + ) -> LROPoller[None]: ... - @distributed_trace - def begin_delete( + @overload + def begin_break_file_locks( self, resource_group_name: str, account_name: str, - backup_policy_name: str, + pool_name: str, + volume_name: str, + body: Optional[BreakFileLocksRequest] = None, + *, + content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_update( + def begin_break_file_locks( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: BackupPolicyPatch, + pool_name: str, + volume_name: str, + body: Optional[BreakFileLocksRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupPolicy]: ... + ) -> LROPoller[None]: ... @overload - def begin_update( + def begin_break_file_locks( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: BackupPolicyPatch, + pool_name: str, + volume_name: str, + body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupPolicy]: ... + ) -> LROPoller[None]: ... @overload - def begin_update( + def begin_break_replication( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: IO[bytes], + pool_name: str, + volume_name: str, + body: Optional[BreakReplicationRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupPolicy]: ... + ) -> LROPoller[None]: ... - @distributed_trace - def get( + @overload + def begin_break_replication( self, resource_group_name: str, account_name: str, - backup_policy_name: str, + pool_name: str, + volume_name: str, + body: Optional[BreakReplicationRequest] = None, + *, + content_type: str = "application/json", **kwargs: Any - ) -> BackupPolicy: ... + ) -> LROPoller[None]: ... - @distributed_trace - def list( + @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 - ) -> ItemPaged[BackupPolicy]: ... - - - class azure.mgmt.netapp.operations.BackupVaultsOperations: - - def __init__( - self, - *args, - **kwargs - ) -> None: ... + ) -> LROPoller[None]: ... @overload def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: BackupVault, + pool_name: str, + volume_name: str, + body: Volume, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupVault]: ... + ) -> LROPoller[Volume]: ... @overload def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: BackupVault, + pool_name: str, + volume_name: str, + body: Volume, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupVault]: ... + ) -> LROPoller[Volume]: ... @overload def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, + pool_name: str, + volume_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[BackupVault]: ... + ) -> LROPoller[Volume]: ... @distributed_trace def begin_delete( self, resource_group_name: str, account_name: str, - backup_vault_name: str, + pool_name: str, + volume_name: str, + *, + force_delete: Optional[bool] = ..., **kwargs: Any ) -> LROPoller[None]: ... - @overload - def begin_update( + @distributed_trace + def begin_delete_replication( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: BackupVaultPatch, - *, - content_type: str = "application/json", + pool_name: str, + volume_name: str, **kwargs: Any - ) -> LROPoller[BackupVault]: ... + ) -> LROPoller[None]: ... - @overload - def begin_update( + @distributed_trace + def begin_finalize_external_replication( 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, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> BackupVault: ... + ) -> LROPoller[None]: ... @distributed_trace - def list_by_net_app_account( + def begin_finalize_relocation( self, resource_group_name: str, account_name: str, + pool_name: str, + volume_name: str, **kwargs: Any - ) -> ItemPaged[BackupVault]: ... - - - class azure.mgmt.netapp.operations.BackupsOperations: - - def __init__( - self, - *args, - **kwargs - ) -> None: ... + ) -> LROPoller[None]: ... @overload - def begin_create( + def begin_list_get_group_id_list_for_ldap_user( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: Backup, + pool_name: str, + volume_name: str, + body: GetGroupIdListForLDAPUserRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Backup]: ... + ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ... @overload - def begin_create( + def begin_list_get_group_id_list_for_ldap_user( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: Backup, + pool_name: str, + volume_name: str, + body: GetGroupIdListForLDAPUserRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Backup]: ... + ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ... @overload - def begin_create( + def begin_list_get_group_id_list_for_ldap_user( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, + volume_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]: ... + ) -> LROPoller[GetGroupIdListForLDAPUserResponse]: ... @overload - def begin_update( + def begin_list_quota_report( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: Optional[BackupPatch] = None, + pool_name: str, + volume_name: str, + body: Optional[QuotaReportFilterRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Backup]: ... + ) -> LROPoller[ListQuotaReportResult]: ... @overload - def begin_update( + def begin_list_quota_report( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: Optional[BackupPatch] = None, + pool_name: str, + volume_name: str, + body: Optional[QuotaReportFilterRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Backup]: ... + ) -> LROPoller[ListQuotaReportResult]: ... @overload - def begin_update( + def begin_list_quota_report( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, + volume_name: str, body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Backup]: ... + ) -> LROPoller[ListQuotaReportResult]: ... - @distributed_trace - def get( + @overload + def begin_peer_external_cluster( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, + volume_name: str, + body: PeerClusterForVolumeMigrationRequest, + *, + content_type: str = "application/json", **kwargs: Any - ) -> Backup: ... + ) -> LROPoller[ClusterPeerCommandResponse]: ... - @distributed_trace - def get_latest_status( + @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 - ) -> BackupStatus: ... + ) -> LROPoller[ClusterPeerCommandResponse]: ... - @distributed_trace - def get_volume_latest_restore_status( + @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 - ) -> RestoreStatus: ... + ) -> LROPoller[ClusterPeerCommandResponse]: ... @distributed_trace - def list_by_vault( + def begin_perform_replication_transfer( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - *, - filter: Optional[str] = ..., + pool_name: str, + volume_name: str, **kwargs: Any - ) -> ItemPaged[Backup]: ... - - - class azure.mgmt.netapp.operations.BackupsUnderAccountOperations: - - def __init__( - self, - *args, - **kwargs - ) -> None: ... + ) -> LROPoller[None]: ... @overload - def begin_migrate_backups( + def begin_pool_change( self, resource_group_name: str, account_name: str, - body: BackupsMigrationRequest, + pool_name: str, + volume_name: str, + body: PoolChangeRequest, *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_migrate_backups( + def begin_pool_change( self, resource_group_name: str, account_name: str, - body: BackupsMigrationRequest, + pool_name: str, + volume_name: str, + body: PoolChangeRequest, *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_migrate_backups( + 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]: ... - - class azure.mgmt.netapp.operations.BackupsUnderBackupVaultOperations: - - def __init__( + @distributed_trace + def begin_populate_availability_zone( self, - *args, - **kwargs - ) -> None: ... + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + **kwargs: Any + ) -> LROPoller[Volume]: ... - @overload - def begin_restore_files( + @distributed_trace + def begin_re_initialize_replication( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: BackupRestoreFiles, - *, - content_type: str = "application/json", + pool_name: str, + volume_name: str, **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_restore_files( + def begin_reestablish_replication( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: BackupRestoreFiles, + pool_name: str, + volume_name: str, + body: ReestablishReplicationRequest, *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_restore_files( + def begin_reestablish_replication( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: IO[bytes], + pool_name: str, + volume_name: str, + body: ReestablishReplicationRequest, *, 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( + def begin_reestablish_replication( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: BackupsMigrationRequest, + body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_migrate_backups( + def begin_relocate( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: BackupsMigrationRequest, + body: Optional[RelocateVolumeRequest] = None, *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_migrate_backups( + def begin_relocate( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: IO[bytes], + body: Optional[RelocateVolumeRequest] = None, *, 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( + def begin_relocate( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: Bucket, + body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Bucket]: ... + ) -> LROPoller[None]: ... - @overload - def begin_create_or_update( + @distributed_trace + def begin_reset_cifs_password( 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]: ... + ) -> 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', '2026-06-01', '2026-06-15-preview']) - def begin_delete( + def begin_resync_replication( 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( + def begin_revert( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: BucketCredentialsExpiry, + body: VolumeRevert, *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_generate_akv_credentials( + def begin_revert( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: BucketCredentialsExpiry, + body: VolumeRevert, *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: ... @overload - def begin_generate_akv_credentials( + def begin_revert( 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", @@ -9947,30 +9514,24 @@ namespace azure.mgmt.netapp.operations ) -> 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', '2026-06-01', '2026-06-15-preview']) - def begin_refresh_certificate( + def begin_revert_relocation( 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( + @distributed_trace + def begin_split_clone_from_parent( 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]: ... + ) -> LROPoller[Volume]: ... @overload def begin_update( @@ -9979,12 +9540,11 @@ namespace azure.mgmt.netapp.operations account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: BucketPatch, + body: VolumePatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Bucket]: ... + ) -> LROPoller[Volume]: ... @overload def begin_update( @@ -9993,4109 +9553,687 @@ namespace azure.mgmt.netapp.operations 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, + body: VolumePatch, *, content_type: str = "application/json", **kwargs: Any - ) -> BucketGenerateCredentials: ... + ) -> LROPoller[Volume]: ... @overload - def generate_credentials( + 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 - ) -> BucketGenerateCredentials: ... + ) -> LROPoller[Volume]: ... @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', '2026-06-01', '2026-06-15-preview']) def get( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, **kwargs: Any - ) -> Bucket: ... + ) -> Volume: ... @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', '2026-06-01', '2026-06-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: ... + ) -> ItemPaged[Volume]: ... @overload - def begin_create_or_update( + def list_replications( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, - body: Cache, + volume_name: str, + body: Optional[ListReplicationsRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Cache]: ... + ) -> ItemPaged[Replication]: ... @overload - def begin_create_or_update( + def list_replications( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, - body: Cache, + volume_name: str, + body: Optional[ListReplicationsRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Cache]: ... + ) -> ItemPaged[Replication]: ... @overload - def begin_create_or_update( + def list_replications( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, - body: IO[bytes], + volume_name: str, + body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[Cache]: ... + ) -> ItemPaged[Replication]: ... @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', '2026-06-01', '2026-06-15-preview']) - def begin_delete( + def replication_status( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, + volume_name: str, **kwargs: Any - ) -> LROPoller[None]: ... + ) -> ReplicationStatus: ... - @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]: ... +namespace azure.mgmt.netapp.types - @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]: ... + 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 + keySource: Union[str, KeySource] + keyVaultProperties: KeyVaultProperties - @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', '2026-06-01', '2026-06-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]: ... + class azure.mgmt.netapp.types.AccountEncryptionPatch(TypedDict, total=False): + key "identity": ForwardRef('EncryptionIdentityPatch', module='types') + key "keySource": Union[str, KeySource] + key "keyVaultProperties": ForwardRef('KeyVaultPropertiesPatch', module='types') + identity: EncryptionIdentityPatch + keySource: Union[str, KeySource] + keyVaultProperties: KeyVaultPropertiesPatch - @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]: ... + class azure.mgmt.netapp.types.AccountProperties(TypedDict, total=False): + key "disableShowmount": Optional[bool] + key "encryption": ForwardRef('AccountEncryption', module='types') + key "ldapConfiguration": ForwardRef('LdapConfiguration', module='types') + key "multiAdStatus": Union[str, MultiAdStatus] + key "nfsV4IDDomain": Optional[str] + key "provisioningState": str + activeDirectories: list[ActiveDirectory] + disableShowmount: bool + encryption: AccountEncryption + ldapConfiguration: LdapConfiguration + multiAdStatus: Union[str, MultiAdStatus] + nfsV4IDDomain: str + provisioningState: str - @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', '2026-06-01', '2026-06-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', '2026-06-01', '2026-06-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', '2026-06-01', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-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', '2026-06-01', '2026-06-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', '2026-06-01', '2026-06-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', '2026-06-01', '2026-06-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', '2026-06-01', '2026-06-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 - - 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 - keySource: Union[str, KeySource] - keyVaultProperties: 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] - disableShowmount: bool - encryption: AccountEncryption - entraIdConfig: EntraIdConfig - ldapConfiguration: LdapConfiguration - multiAdStatus: Union[str, MultiAdStatus] - nfsV4IDDomain: str - provisioningState: 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] - encryption: AccountEncryption - entraIdConfig: EntraIdConfigPatch - ldapConfiguration: LdapConfigurationPatch - nfsV4IDDomain: 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 - activeDirectoryId: str - adName: str - administrators: list[str] - aesEncryption: bool - allowLocalNfsUsersWithLdap: bool - backupOperators: list[str] - dns: str - domain: str - encryptDCConnections: bool - kdcIP: str - ldapOverTLS: bool - ldapSearchScope: LdapSearchScopeOpt - ldapSigning: bool - organizationalUnit: str - password: str - preferredServersForLdapClient: str - securityOperators: list[str] - serverRootCACertificate: str - site: str - smbServerName: str - status: Union[str, ActiveDirectoryStatus] - statusDetails: 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 - systemData: 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 - activeDirectoryStatus: Union[str, ActiveDirectoryStatus] - administrators: list[str] - backupOperators: list[str] - dns: list[str] - domain: str - organizationalUnit: str - provisioningState: Union[str, NetAppProvisioningState] - secretPassword: SecretPassword - securityOperators: list[str] - site: str - smbServerName: str - userName: 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] - dns: list[str] - domain: str - organizationalUnit: str - secretPassword: SecretPassword - securityOperators: list[str] - site: str - smbServerName: str - userName: str - - - class azure.mgmt.netapp.types.AuthorizeRequest(TypedDict, total=False): - key "remoteVolumeResourceId": str - remoteVolumeResourceId: str - - - class azure.mgmt.netapp.types.AzureKeyVaultDetails(TypedDict, total=False): - key "certificateAkvDetails": ForwardRef('CertificateAkvDetails', module='types') - key "credentialsAkvDetails": ForwardRef('CredentialsAkvDetails', module='types') - certificateAkvDetails: CertificateAkvDetails - credentialsAkvDetails: 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 - systemData: 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 - systemData: 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 - backupPolicyId: str - dailyBackupsToKeep: int - enabled: bool - monthlyBackupsToKeep: int - provisioningState: str - volumeBackups: list[VolumeBackups] - volumesAssigned: int - weeklyBackupsToKeep: 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] - backupId: str - backupPolicyResourceId: str - backupType: Union[str, BackupType] - completionDate: str - creationDate: str - failureReason: str - isLargeVolume: bool - label: str - provisioningState: str - size: int - snapshotCreationDate: str - snapshotName: str - useExistingSnapshot: bool - volumeResourceId: str - - - class azure.mgmt.netapp.types.BackupRestoreFiles(TypedDict, total=False): - key "destinationVolumeId": Required[str] - key "fileList": Required[list[str]] - key "restoreFilePath": str - destinationVolumeId: str - fileList: list[str] - restoreFilePath: 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 - systemData: 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 - provisioningState: str - - - class azure.mgmt.netapp.types.BackupsMigrationRequest(TypedDict, total=False): - key "backupVaultId": Required[str] - backupVaultId: str - - - class azure.mgmt.netapp.types.BindPasswordAkvConfig(TypedDict, total=False): - key "azureKeyVaultUri": Required[str] - key "secretName": Required[str] - key "userAssignedIdentity": str - azureKeyVaultUri: str - secretName: str - userAssignedIdentity: str - - - class azure.mgmt.netapp.types.BindPasswordAkvConfigPatch(TypedDict, total=False): - key "azureKeyVaultUri": str - key "secretName": str - key "userAssignedIdentity": str - azureKeyVaultUri: str - secretName: str - userAssignedIdentity: str - - - class azure.mgmt.netapp.types.BreakFileLocksRequest(TypedDict, total=False): - key "clientIp": str - key "confirmRunningDisruptiveOperation": bool - clientIp: str - confirmRunningDisruptiveOperation: bool - - - class azure.mgmt.netapp.types.BreakReplicationRequest(TypedDict, total=False): - key "forceBreakReplication": bool - forceBreakReplication: 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 - systemData: SystemData - type: str - - - class azure.mgmt.netapp.types.BucketCredentialsExpiry(TypedDict, total=False): - key "keyPairExpiryDays": int - keyPairExpiryDays: 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 - systemData: 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') - akvDetails: AzureKeyVaultDetails - fileSystemUser: FileSystemUser - permissions: Union[str, BucketPatchPermissions] - provisioningState: 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] - akvDetails: AzureKeyVaultDetails - fileSystemUser: FileSystemUser - path: str - permissions: Union[str, BucketPermissions] - provisioningState: 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] - certificateObject: str - fqdn: str - onCertificateConflictAction: 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] - certificateCommonName: str - certificateExpiryDate: str - certificateObject: str - fqdn: str - ipAddress: str - onCertificateConflictAction: Union[str, OnCertificateConflictAction] - - - 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 - systemData: 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 - ipAddress: str - mountTargetId: str - smbServerFqdn: 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] - actualThroughputMibps: float - cacheState: Union[str, CacheLifeCycleState] - cacheSubnetResourceId: str - cifsChangeNotifications: Union[str, CifsChangeNotifyState] - encryption: Union[str, EncryptionState] - encryptionKeySource: Union[str, EncryptionKeySource] - exportPolicy: CachePropertiesExportPolicy - fileAccessLogs: Union[str, CacheFileAccessLogs] - filePath: str - globalFileLocking: Union[str, GlobalFileLockingState] - kerberos: Union[str, KerberosState] - keyVaultPrivateEndpointResourceId: str - language: Union[str, VolumeLanguage] - ldap: Union[str, LdapState] - ldapServerType: Union[str, LdapServerType] - maximumNumberOfFiles: int - mountTargets: list[CacheMountTargetProperties] - originClusterInformation: OriginClusterInformation - peeringSubnetResourceId: str - protocolTypes: list[Union[str, ProtocolTypes]] - provisioningState: Union[str, CacheProvisioningState] - size: int - smbSettings: SmbSettings - throughputMibps: float - writeBack: 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] - cifsChangeNotifications: Union[str, CifsChangeNotifyState] - exportPolicy: CachePropertiesExportPolicy - keyVaultPrivateEndpointResourceId: str - protocolTypes: list[Union[str, ProtocolTypes]] - size: int - smbSettings: SmbSettings - throughputMibps: float - writeBack: 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 - systemData: 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 - certificateKeyVaultUri: str - certificateName: str - userAssignedIdentity: 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] - keyName: str - keyVaultPrivateEndpoints: list[KeyVaultPrivateEndpoint] - keyVaultResourceId: str - keyVaultUri: str - - - class azure.mgmt.netapp.types.ChangeZoneRequest(TypedDict, total=False): - key "newZone": Required[str] - newZone: str - - - class azure.mgmt.netapp.types.CheckElasticVolumeFilePathAvailabilityRequest(TypedDict, total=False): - key "filePath": Required[str] - filePath: str + class azure.mgmt.netapp.types.AccountPropertiesPatch(TypedDict, total=False): + key "encryption": ForwardRef('AccountEncryptionPatch', module='types') + key "ldapConfiguration": ForwardRef('LdapConfigurationPatch', module='types') + key "nfsV4IDDomain": Optional[str] + activeDirectories: list[ActiveDirectoryPatch] + encryption: AccountEncryptionPatch + ldapConfiguration: LdapConfigurationPatch + nfsV4IDDomain: str - class azure.mgmt.netapp.types.CifsUser(TypedDict, total=False): + 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 + activeDirectoryId: str + adName: str + administrators: list[str] + aesEncryption: bool + allowLocalNfsUsersWithLdap: bool + backupOperators: list[str] + dns: str + domain: str + encryptDCConnections: bool + kdcIP: str + ldapOverTLS: bool + ldapSearchScope: LdapSearchScopeOpt + ldapSigning: bool + organizationalUnit: str + password: str + preferredServersForLdapClient: str + securityOperators: list[str] + serverRootCACertificate: str + site: str + smbServerName: str + status: Union[str, ActiveDirectoryStatus] + statusDetails: str username: str - class azure.mgmt.netapp.types.CredentialsAkvDetails(TypedDict, total=False): - key "credentialsKeyVaultUri": str - key "secretName": str - key "userAssignedIdentity": str - credentialsKeyVaultUri: str - secretName: str - userAssignedIdentity: 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 - snapshotsToKeep: int - usedBytes: int + class azure.mgmt.netapp.types.ActiveDirectoryPatch(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 "username": str + activeDirectoryId: str + adName: str + administrators: list[str] + aesEncryption: bool + allowLocalNfsUsersWithLdap: bool + backupOperators: list[str] + dns: str + domain: str + encryptDCConnections: bool + kdcIP: str + ldapOverTLS: bool + ldapSearchScope: LdapSearchScopeOpt + ldapSigning: bool + organizationalUnit: str + password: str + preferredServersForLdapClient: str + securityOperators: list[str] + serverRootCACertificate: str + site: str + smbServerName: str + username: 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 - replicationType: Union[str, ReplicationType] - resourceId: str - zone: str + class azure.mgmt.netapp.types.AuthorizeRequest(TypedDict, total=False): + key "remoteVolumeResourceId": str + remoteVolumeResourceId: str + + + class azure.mgmt.netapp.types.AzureKeyVaultDetails(TypedDict, total=False): + key "certificateAkvDetails": ForwardRef('CertificateAkvDetails', module='types') + key "credentialsAkvDetails": ForwardRef('CredentialsAkvDetails', module='types') + certificateAkvDetails: CertificateAkvDetails + credentialsAkvDetails: CredentialsAkvDetails - class azure.mgmt.netapp.types.ElasticAccount(TrackedResource): - key "eTag": str + class azure.mgmt.netapp.types.Backup(ProxyResource): key "id": str - key "identity": ForwardRef('ManagedServiceIdentity', module='types') - key "location": Required[str] key "name": str - key "properties": ForwardRef('ElasticAccountProperties', module='types') + key "properties": Required[BackupProperties] key "systemData": ForwardRef('SystemData', module='types') key "type": str - eTag: str id: str - identity: ManagedServiceIdentity - location: str name: str - properties: ElasticAccountProperties + properties: BackupProperties systemData: SystemData - tags: dict[str, str] type: str - class azure.mgmt.netapp.types.ElasticAccountProperties(TypedDict, total=False): - key "encryption": ForwardRef('ElasticEncryption', module='types') - key "provisioningState": Union[str, NetAppProvisioningState] - encryption: ElasticEncryption - provisioningState: Union[str, NetAppProvisioningState] - - - 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.BackupPatch(TypedDict, total=False): + key "properties": ForwardRef('BackupPatchProperties', module='types') + properties: BackupPatchProperties - class azure.mgmt.netapp.types.ElasticAccountUpdateProperties(TypedDict, total=False): - key "encryption": ForwardRef('ElasticEncryption', module='types') - encryption: ElasticEncryption + class azure.mgmt.netapp.types.BackupPatchProperties(TypedDict, total=False): + key "label": str + label: str - class azure.mgmt.netapp.types.ElasticBackup(ProxyResource): + class azure.mgmt.netapp.types.BackupPolicy(TrackedResource): + key "etag": str key "id": str + key "location": Required[str] key "name": str - key "properties": ForwardRef('ElasticBackupProperties', module='types') + key "properties": Required[BackupPolicyProperties] key "systemData": ForwardRef('SystemData', module='types') key "type": str + etag: str id: str + location: str name: str - properties: ElasticBackupProperties + properties: BackupPolicyProperties systemData: SystemData + tags: dict[str, str] type: str - class azure.mgmt.netapp.types.ElasticBackupPolicy(TrackedResource): - key "eTag": str + class azure.mgmt.netapp.types.BackupPolicyPatch(TypedDict, total=False): key "id": str - key "location": Required[str] + key "location": str key "name": str - key "properties": ForwardRef('ElasticBackupPolicyProperties', module='types') - key "systemData": ForwardRef('SystemData', module='types') + key "properties": ForwardRef('BackupPolicyProperties', module='types') key "type": str - eTag: str id: str location: str name: str - properties: ElasticBackupPolicyProperties - systemData: SystemData + properties: BackupPolicyProperties tags: dict[str, str] type: str - class azure.mgmt.netapp.types.ElasticBackupPolicyProperties(TypedDict, total=False): - key "assignedVolumesCount": int - key "dailyBackupsToKeep": int - key "monthlyBackupsToKeep": int - key "policyState": Union[str, ElasticBackupPolicyState] - key "provisioningState": Union[str, NetAppProvisioningState] - key "weeklyBackupsToKeep": int - assignedVolumesCount: int - dailyBackupsToKeep: int - monthlyBackupsToKeep: int - policyState: Union[str, ElasticBackupPolicyState] - provisioningState: Union[str, NetAppProvisioningState] - weeklyBackupsToKeep: int - - - 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): + class azure.mgmt.netapp.types.BackupPolicyProperties(TypedDict, total=False): + key "backupPolicyId": str key "dailyBackupsToKeep": int + key "enabled": bool key "monthlyBackupsToKeep": int - key "policyState": Union[str, ElasticBackupPolicyState] + key "provisioningState": str + key "volumesAssigned": int key "weeklyBackupsToKeep": int + backupPolicyId: str dailyBackupsToKeep: int + enabled: bool monthlyBackupsToKeep: int - policyState: Union[str, ElasticBackupPolicyState] + provisioningState: str + volumeBackups: list[VolumeBackups] + volumesAssigned: int weeklyBackupsToKeep: int - class azure.mgmt.netapp.types.ElasticBackupProperties(TypedDict, total=False): - key "backupType": Union[str, ElasticBackupType] - key "completionDate": str + 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 "elasticBackupPolicyResourceId": str - key "elasticSnapshotResourceId": str - key "elasticVolumeResourceId": Required[str] key "failureReason": str + key "isLargeVolume": bool key "label": str - key "provisioningState": Union[str, NetAppProvisioningState] + key "provisioningState": str key "size": int - key "snapshotCreationDate": str - key "snapshotUsage": Union[str, SnapshotUsage] - key "volumeSize": Union[str, VolumeSize] - backupType: Union[str, ElasticBackupType] + key "snapshotCreationDate": Optional[str] + key "snapshotName": str + key "useExistingSnapshot": bool + key "volumeResourceId": Required[str] + backupId: str + backupPolicyResourceId: str + backupType: Union[str, BackupType] completionDate: str creationDate: str - elasticBackupPolicyResourceId: str - elasticSnapshotResourceId: str - elasticVolumeResourceId: str failureReason: str + isLargeVolume: bool label: str - provisioningState: Union[str, NetAppProvisioningState] + provisioningState: str size: int snapshotCreationDate: str - snapshotUsage: Union[str, SnapshotUsage] - volumeSize: Union[str, VolumeSize] + snapshotName: str + useExistingSnapshot: bool + volumeResourceId: str + + + class azure.mgmt.netapp.types.BackupRestoreFiles(TypedDict, total=False): + key "destinationVolumeId": Required[str] + key "fileList": Required[list[str]] + key "restoreFilePath": str + destinationVolumeId: str + fileList: list[str] + restoreFilePath: str - class azure.mgmt.netapp.types.ElasticBackupVault(TrackedResource): - key "eTag": str + class azure.mgmt.netapp.types.BackupVault(TrackedResource): key "id": str key "location": Required[str] key "name": str - key "properties": ForwardRef('ElasticBackupVaultProperties', module='types') + key "properties": ForwardRef('BackupVaultProperties', module='types') key "systemData": ForwardRef('SystemData', module='types') key "type": str - eTag: str id: str location: str name: str - properties: ElasticBackupVaultProperties + properties: BackupVaultProperties systemData: SystemData tags: dict[str, str] type: str - class azure.mgmt.netapp.types.ElasticBackupVaultProperties(TypedDict, total=False): - key "provisioningState": Union[str, NetAppProvisioningState] - provisioningState: Union[str, NetAppProvisioningState] + class azure.mgmt.netapp.types.BackupVaultPatch(TypedDict, total=False): + tags: dict[str, str] - class azure.mgmt.netapp.types.ElasticBackupVaultUpdate(TypedDict, total=False): - tags: dict[str, str] + class azure.mgmt.netapp.types.BackupVaultProperties(TypedDict, total=False): + key "provisioningState": str + provisioningState: str - class azure.mgmt.netapp.types.ElasticCapacityPool(TrackedResource): - key "eTag": str - key "id": str - key "location": Required[str] - key "name": str - key "properties": ForwardRef('ElasticCapacityPoolProperties', module='types') - key "systemData": ForwardRef('SystemData', module='types') - key "type": str - eTag: str - id: str - location: str - name: str - properties: ElasticCapacityPoolProperties - systemData: SystemData - tags: dict[str, str] - type: str - zones: list[str] + class azure.mgmt.netapp.types.BackupsMigrationRequest(TypedDict, total=False): + key "backupVaultId": Required[str] + backupVaultId: str - 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 - activeDirectoryConfigResourceId: str - availabilityStatus: Union[str, ElasticResourceAvailabilityStatus] - currentZone: str - encryption: ElasticEncryptionConfiguration - provisioningState: Union[str, NetAppProvisioningState] - serviceLevel: Union[str, ElasticServiceLevel] - size: int - subnetResourceId: str - totalThroughputMibps: float + class azure.mgmt.netapp.types.BindPasswordAkvConfig(TypedDict, total=False): + key "azureKeyVaultUri": Required[str] + key "secretName": Required[str] + key "userAssignedIdentity": str + azureKeyVaultUri: str + secretName: str + userAssignedIdentity: 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.BindPasswordAkvConfigPatch(TypedDict, total=False): + key "azureKeyVaultUri": str + key "secretName": str + key "userAssignedIdentity": str + azureKeyVaultUri: str + secretName: str + userAssignedIdentity: str - class azure.mgmt.netapp.types.ElasticCapacityPoolUpdateProperties(TypedDict, total=False): - key "activeDirectoryConfigResourceId": str - key "encryption": ForwardRef('ElasticEncryptionConfiguration', module='types') - key "size": int - activeDirectoryConfigResourceId: str - encryption: ElasticEncryptionConfiguration - size: int + class azure.mgmt.netapp.types.BreakFileLocksRequest(TypedDict, total=False): + key "clientIp": str + key "confirmRunningDisruptiveOperation": bool + clientIp: str + confirmRunningDisruptiveOperation: bool - 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 - keySource: Union[str, KeySource] - keyVaultProperties: ElasticKeyVaultProperties + class azure.mgmt.netapp.types.BreakReplicationRequest(TypedDict, total=False): + key "forceBreakReplication": bool + forceBreakReplication: bool - class azure.mgmt.netapp.types.ElasticEncryptionConfiguration(TypedDict, total=False): - key "elasticPoolEncryptionKeySource": Required[Union[str, ElasticPoolEncryptionKeySource]] - key "keyVaultPrivateEndpointResourceId": Required[str] - elasticPoolEncryptionKeySource: Union[str, ElasticPoolEncryptionKeySource] - keyVaultPrivateEndpointResourceId: str + 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 + systemData: SystemData + type: str - class azure.mgmt.netapp.types.ElasticEncryptionIdentity(TypedDict, total=False): - key "federatedClientId": str - key "principalId": str - key "userAssignedIdentity": str - federatedClientId: str - principalId: str - userAssignedIdentity: str + class azure.mgmt.netapp.types.BucketCredentialsExpiry(TypedDict, total=False): + key "keyPairExpiryDays": int + keyPairExpiryDays: int - class azure.mgmt.netapp.types.ElasticExportPolicy(TypedDict, total=False): - rules: list[ElasticExportPolicyRule] + 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 + systemData: SystemData + type: str - 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] - nfsv3: Union[str, ElasticNfsv3Access] - nfsv4: Union[str, ElasticNfsv4Access] - rootAccess: Union[str, ElasticRootAccess] - ruleIndex: int - unixAccessRule: Union[str, ElasticUnixAccessRule] + 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') + akvDetails: AzureKeyVaultDetails + fileSystemUser: FileSystemUser + permissions: Union[str, BucketPatchPermissions] + provisioningState: Union[str, NetAppProvisioningState] + server: BucketServerPatchProperties - class azure.mgmt.netapp.types.ElasticKeyVaultProperties(TypedDict, total=False): - key "keyName": str - key "keyVaultResourceId": str - key "keyVaultUri": str - key "status": Union[str, ElasticKeyVaultStatus] - keyName: str - keyVaultResourceId: str - keyVaultUri: str - status: Union[str, ElasticKeyVaultStatus] + 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] + akvDetails: AzureKeyVaultDetails + fileSystemUser: FileSystemUser + path: str + permissions: Union[str, BucketPermissions] + provisioningState: 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] + certificateObject: str + fqdn: str + onCertificateConflictAction: Union[str, OnCertificateConflictAction] - class azure.mgmt.netapp.types.ElasticMountTargetProperties(TypedDict, total=False): + 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 "smbServerFqdn": str + key "onCertificateConflictAction": Union[str, OnCertificateConflictAction] + certificateCommonName: str + certificateExpiryDate: str + certificateObject: str + fqdn: str ipAddress: str - smbServerFqdn: str - - - class azure.mgmt.netapp.types.ElasticSmbPatchProperties(TypedDict, total=False): - key "smbEncryption": Union[str, ElasticSmbEncryption] - smbEncryption: Union[str, ElasticSmbEncryption] - - - class azure.mgmt.netapp.types.ElasticSmbProperties(TypedDict, total=False): - key "smbEncryption": Union[str, ElasticSmbEncryption] - smbEncryption: 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 - systemData: SystemData - type: str + onCertificateConflictAction: Union[str, OnCertificateConflictAction] - class azure.mgmt.netapp.types.ElasticSnapshotPolicy(TrackedResource): - key "eTag": str + class azure.mgmt.netapp.types.Cache(TrackedResource): + key "etag": str key "id": str key "location": Required[str] key "name": str - key "properties": ForwardRef('ElasticSnapshotPolicyProperties', module='types') + key "properties": Required[CacheProperties] key "systemData": ForwardRef('SystemData', module='types') key "type": str - eTag: str + etag: str id: str location: str name: str - properties: ElasticSnapshotPolicyProperties + properties: CacheProperties systemData: SystemData tags: dict[str, str] type: str + zones: list[str] - class azure.mgmt.netapp.types.ElasticSnapshotPolicyDailySchedule(TypedDict, total=False): - key "hour": int - key "minute": int - key "snapshotsToKeep": int - hour: int - minute: int - snapshotsToKeep: int - - - class azure.mgmt.netapp.types.ElasticSnapshotPolicyHourlySchedule(TypedDict, total=False): - key "minute": int - key "snapshotsToKeep": int - minute: int - snapshotsToKeep: int + class azure.mgmt.netapp.types.CacheMountTargetProperties(TypedDict, total=False): + key "ipAddress": str + key "mountTargetId": str + key "smbServerFqdn": str + ipAddress: str + mountTargetId: str + smbServerFqdn: str - class azure.mgmt.netapp.types.ElasticSnapshotPolicyMonthlySchedule(TypedDict, total=False): - key "hour": int - key "minute": int - key "snapshotsToKeep": int - daysOfMonth: list[int] - hour: int - minute: int - snapshotsToKeep: 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] + actualThroughputMibps: float + cacheState: Union[str, CacheLifeCycleState] + cacheSubnetResourceId: str + cifsChangeNotifications: Union[str, CifsChangeNotifyState] + encryption: Union[str, EncryptionState] + encryptionKeySource: Union[str, EncryptionKeySource] + exportPolicy: CachePropertiesExportPolicy + fileAccessLogs: Union[str, CacheFileAccessLogs] + filePath: str + globalFileLocking: Union[str, GlobalFileLockingState] + kerberos: Union[str, KerberosState] + keyVaultPrivateEndpointResourceId: str + language: Union[str, VolumeLanguage] + ldap: Union[str, LdapState] + ldapServerType: Union[str, LdapServerType] + maximumNumberOfFiles: int + mountTargets: list[CacheMountTargetProperties] + originClusterInformation: OriginClusterInformation + peeringSubnetResourceId: str + protocolTypes: list[Union[str, ProtocolTypes]] + provisioningState: Union[str, CacheProvisioningState] + size: int + smbSettings: SmbSettings + throughputMibps: float + writeBack: Union[str, EnableWriteBackState] - 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') - dailySchedule: ElasticSnapshotPolicyDailySchedule - hourlySchedule: ElasticSnapshotPolicyHourlySchedule - monthlySchedule: ElasticSnapshotPolicyMonthlySchedule - policyStatus: Union[str, PolicyStatus] - provisioningState: Union[str, NetAppProvisioningState] - weeklySchedule: ElasticSnapshotPolicyWeeklySchedule + class azure.mgmt.netapp.types.CachePropertiesExportPolicy(TypedDict, total=False): + rules: list[ExportPolicyRule] - class azure.mgmt.netapp.types.ElasticSnapshotPolicyUpdate(TypedDict, total=False): - key "properties": ForwardRef('ElasticSnapshotPolicyUpdateProperties', module='types') - properties: ElasticSnapshotPolicyUpdateProperties + 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.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') - dailySchedule: ElasticSnapshotPolicyDailySchedule - hourlySchedule: ElasticSnapshotPolicyHourlySchedule - monthlySchedule: ElasticSnapshotPolicyMonthlySchedule - policyStatus: Union[str, PolicyStatus] - weeklySchedule: ElasticSnapshotPolicyWeeklySchedule - - - 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 - snapshotsToKeep: int - - - class azure.mgmt.netapp.types.ElasticSnapshotProperties(TypedDict, total=False): - key "provisioningState": Union[str, NetAppProvisioningState] - provisioningState: Union[str, NetAppProvisioningState] + 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] + cifsChangeNotifications: Union[str, CifsChangeNotifyState] + exportPolicy: CachePropertiesExportPolicy + keyVaultPrivateEndpointResourceId: str + protocolTypes: list[Union[str, ProtocolTypes]] + size: int + smbSettings: SmbSettings + throughputMibps: float + writeBack: Union[str, EnableWriteBackState] - class azure.mgmt.netapp.types.ElasticVolume(TrackedResource): - key "eTag": str + class azure.mgmt.netapp.types.CapacityPool(TrackedResource): + key "etag": str key "id": str key "location": Required[str] key "name": str - key "properties": ForwardRef('ElasticVolumeProperties', module='types') + key "properties": Required[PoolProperties] key "systemData": ForwardRef('SystemData', module='types') key "type": str - eTag: str + etag: str id: str location: str name: str - properties: ElasticVolumeProperties + properties: PoolProperties systemData: SystemData tags: dict[str, str] type: str - zones: list[str] - - class azure.mgmt.netapp.types.ElasticVolumeBackupProperties(TypedDict, total=False): - key "elasticBackupPolicyResourceId": str - key "elasticBackupVaultResourceId": str - key "policyEnforcement": Union[str, ElasticVolumePolicyEnforcement] - elasticBackupPolicyResourceId: str - elasticBackupVaultResourceId: str - policyEnforcement: Union[str, ElasticVolumePolicyEnforcement] - - 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.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.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.CertificateAkvDetails(TypedDict, total=False): + key "certificateKeyVaultUri": str + key "certificateName": str + certificateKeyVaultUri: str + certificateName: 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 - availabilityStatus: Union[str, ElasticResourceAvailabilityStatus] - backupResourceId: str - dataProtection: ElasticVolumeDataProtectionProperties - exportPolicy: ElasticExportPolicy - filePath: str - mountTargets: list[ElasticMountTargetProperties] - protocolTypes: list[Union[str, ElasticProtocolType]] - provisioningState: Union[str, NetAppProvisioningState] - restorationState: Union[str, ElasticVolumeRestorationState] - size: int - smbProperties: ElasticSmbProperties - snapshotDirectoryVisibility: Union[str, SnapshotDirectoryVisibility] - snapshotResourceId: 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] + keyName: str + keyVaultPrivateEndpoints: list[KeyVaultPrivateEndpoint] + keyVaultResourceId: str + keyVaultUri: str - class azure.mgmt.netapp.types.ElasticVolumeRevert(TypedDict, total=False): - key "snapshotResourceId": str - snapshotResourceId: str + class azure.mgmt.netapp.types.CifsUser(TypedDict, total=False): + key "username": str + username: str - class azure.mgmt.netapp.types.ElasticVolumeSnapshotProperties(TypedDict, total=False): - key "snapshotPolicyResourceId": str - snapshotPolicyResourceId: str + class azure.mgmt.netapp.types.CredentialsAkvDetails(TypedDict, total=False): + key "credentialsKeyVaultUri": str + key "secretName": str + credentialsKeyVaultUri: str + secretName: 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.DailySchedule(TypedDict, total=False): + key "hour": int + key "minute": int + key "snapshotsToKeep": int + key "usedBytes": int + hour: int + minute: int + snapshotsToKeep: int + usedBytes: int - 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] - dataProtection: ElasticVolumeDataProtectionPatchProperties - exportPolicy: ElasticExportPolicy - size: int - smbProperties: ElasticSmbPatchProperties - snapshotDirectoryVisibility: Union[str, SnapshotDirectoryVisibility] + 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 + replicationType: Union[str, ReplicationType] + resourceId: str + zone: str class azure.mgmt.netapp.types.EncryptionIdentity(TypedDict, total=False): @@ -14107,6 +10245,13 @@ namespace azure.mgmt.netapp.types userAssignedIdentity: str + class azure.mgmt.netapp.types.EncryptionIdentityPatch(TypedDict, total=False): + key "federatedClientId": str + key "userAssignedIdentity": str + federatedClientId: str + userAssignedIdentity: str + + class azure.mgmt.netapp.types.EncryptionTransitionRequest(TypedDict, total=False): key "privateEndpointId": Required[str] key "virtualNetworkId": Required[str] @@ -14114,46 +10259,6 @@ namespace azure.mgmt.netapp.types virtualNetworkId: str - class azure.mgmt.netapp.types.EntraIdAkvConfig(TypedDict, total=False): - key "azureKeyVaultUri": Required[str] - key "certificateName": Required[str] - key "userAssignedIdentity": str - azureKeyVaultUri: str - certificateName: str - userAssignedIdentity: str - - - class azure.mgmt.netapp.types.EntraIdAkvConfigPatch(TypedDict, total=False): - key "azureKeyVaultUri": str - key "certificateName": str - key "userAssignedIdentity": str - azureKeyVaultUri: str - certificateName: str - userAssignedIdentity: 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] - applicationId: str - domain: str - entraIdAkvConfig: EntraIdAkvConfig - serverNamePrefix: 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 - applicationId: str - domain: str - entraIdAkvConfig: EntraIdAkvConfigPatch - serverNamePrefix: str - - class azure.mgmt.netapp.types.ExportPolicyRule(TypedDict, total=False): key "allowedClients": str key "chownMode": Union[str, ChownMode] @@ -14237,6 +10342,15 @@ namespace azure.mgmt.netapp.types status: Union[str, KeyVaultStatus] + class azure.mgmt.netapp.types.KeyVaultPropertiesPatch(TypedDict, total=False): + key "keyName": str + key "keyVaultResourceId": str + key "keyVaultUri": str + keyName: str + keyVaultResourceId: str + keyVaultUri: str + + class azure.mgmt.netapp.types.LdapConfiguration(TypedDict, total=False): key "bindAuthenticationLevel": Union[str, BindAuthenticationLevel] key "bindDN": str @@ -14554,27 +10668,6 @@ 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 - keyVaultProperties: SecretPasswordKeyVaultProperties - - - class azure.mgmt.netapp.types.SecretPasswordIdentity(TypedDict, total=False): - key "principalId": str - key "userAssignedIdentity": str - principalId: str - userAssignedIdentity: str - - - class azure.mgmt.netapp.types.SecretPasswordKeyVaultProperties(TypedDict, total=False): - key "keyVaultUri": Required[str] - key "secretName": Required[str] - keyVaultUri: str - secretName: str - - class azure.mgmt.netapp.types.SmbSettings(TypedDict, total=False): key "smbAccessBasedEnumeration": Union[str, SmbAccessBasedEnumeration] key "smbEncryption": Union[str, SmbEncryptionState] @@ -14929,10 +11022,7 @@ 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 @@ -14988,10 +11078,7 @@ namespace azure.mgmt.netapp.types isRestoring: bool kerberosEnabled: bool keyVaultPrivateEndpointResourceId: str - language: Union[str, VolumeLanguage] - largeVolumeType: Union[str, LargeVolumeType] ldapEnabled: bool - ldapServerType: Union[str, LdapServerType] maximumNumberOfFiles: int mountTargets: list[MountTargetProperties] networkFeatures: Union[str, NetworkFeatures] diff --git a/sdk/netapp/azure-mgmt-netapp/api.metadata.yml b/sdk/netapp/azure-mgmt-netapp/api.metadata.yml index 3eae3ae97c6e..697365222cb6 100644 --- a/sdk/netapp/azure-mgmt-netapp/api.metadata.yml +++ b/sdk/netapp/azure-mgmt-netapp/api.metadata.yml @@ -1,3 +1,4 @@ -apiMdSha256: 072caa248ad8c870b3d79de31ccf442d8ec0a9792fe4087e963913fd942bfa80 +apiHash: 0fbc46d284c7ee9a2c2690bd17071fe1cc0da60194bdb624dff818743a65425e +packageVersion: 18.0.0 parserVersion: 0.3.31 -pythonVersion: 3.13.15 +pythonVersion: 3.13.16 diff --git a/sdk/netapp/azure-mgmt-netapp/apiview-properties.json b/sdk/netapp/azure-mgmt-netapp/apiview-properties.json index 65a6b0c12b33..d02966ee6f8b 100644 --- a/sdk/netapp/azure-mgmt-netapp/apiview-properties.json +++ b/sdk/netapp/azure-mgmt-netapp/apiview-properties.json @@ -2,21 +2,19 @@ "CrossLanguagePackageId": "Microsoft.NetApp", "CrossLanguageDefinitionId": { "azure.mgmt.netapp.models.AccountEncryption": "Microsoft.NetApp.AccountEncryption", + "azure.mgmt.netapp.models.AccountEncryptionPatch": "Microsoft.NetApp.AccountEncryptionPatch", "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.ActiveDirectoryPatch": "Microsoft.NetApp.ActiveDirectoryPatch", "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", @@ -49,10 +47,7 @@ "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", @@ -60,57 +55,9 @@ "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.EncryptionIdentityPatch": "Microsoft.NetApp.EncryptionIdentityPatch", "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", @@ -124,6 +71,7 @@ "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.KeyVaultPropertiesPatch": "Microsoft.NetApp.KeyVaultPropertiesPatch", "azure.mgmt.netapp.models.LdapConfiguration": "Microsoft.NetApp.LdapConfiguration", "azure.mgmt.netapp.models.LdapConfigurationPatch": "Microsoft.NetApp.LdapConfigurationPatch", "azure.mgmt.netapp.models.LdapSearchScopeOpt": "Microsoft.NetApp.LdapSearchScopeOpt", @@ -173,9 +121,6 @@ "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", @@ -244,14 +189,11 @@ "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", @@ -273,40 +215,21 @@ "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.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.ActiveDirectoryStatus": "Microsoft.NetApp.ActiveDirectoryStatus", + "azure.mgmt.netapp.models.KeySource": "Microsoft.NetApp.KeySource", "azure.mgmt.netapp.models.KeyVaultStatus": "Microsoft.NetApp.KeyVaultStatus", "azure.mgmt.netapp.models.MultiAdStatus": "Microsoft.NetApp.MultiAdStatus", "azure.mgmt.netapp.models.SecureLdapType": "Microsoft.NetApp.SecureLdapType", "azure.mgmt.netapp.models.BindAuthenticationLevel": "Microsoft.NetApp.BindAuthenticationLevel", + "azure.mgmt.netapp.models.ManagedServiceIdentityType": "Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType", "azure.mgmt.netapp.models.QosType": "Microsoft.NetApp.QosType", "azure.mgmt.netapp.models.EncryptionType": "Microsoft.NetApp.EncryptionType", "azure.mgmt.netapp.models.InAvailabilityReasonType": "Microsoft.NetApp.InAvailabilityReasonType", @@ -489,106 +412,6 @@ "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", @@ -664,5 +487,5 @@ "azure.mgmt.netapp.operations.NetAppResourceUsagesOperations.get": "Microsoft.NetApp.NetAppResourceUsagesOperationGroup.get", "azure.mgmt.netapp.aio.operations.NetAppResourceUsagesOperations.get": "Microsoft.NetApp.NetAppResourceUsagesOperationGroup.get" }, - "CrossLanguageVersion": "d250abc99948" + "CrossLanguageVersion": "a93b0f331703" } \ No newline at end of file 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 4d69fa57125e..9e12d1cbecd6 100644 --- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_client.py +++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_client.py @@ -22,7 +22,6 @@ from ._utils.serialization import Deserializer, Serializer from .operations import ( AccountsOperations, - ActiveDirectoryConfigsOperations, BackupPoliciesOperations, BackupVaultsOperations, BackupsOperations, @@ -31,14 +30,6 @@ BackupsUnderVolumeOperations, BucketsOperations, CachesOperations, - ElasticAccountsOperations, - ElasticBackupPoliciesOperations, - ElasticBackupVaultsOperations, - ElasticBackupsOperations, - ElasticCapacityPoolsOperations, - ElasticSnapshotPoliciesOperations, - ElasticSnapshotsOperations, - ElasticVolumesOperations, NetAppResourceOperations, NetAppResourceQuotaLimitsAccountOperations, NetAppResourceQuotaLimitsOperations, @@ -96,26 +87,6 @@ class NetAppManagementClient: # pylint: disable=too-many-instance-attributes,do :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 @@ -148,10 +119,9 @@ class NetAppManagementClient: # pylint: disable=too-many-instance-attributes,do :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-06-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. + :keyword api_version: The API version to use for this operation. Known values are "2026-08-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. :paramtype api_version: str :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. @@ -225,29 +195,6 @@ 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 072e0d70cf99..22fc8d7205c3 100644 --- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_configuration.py +++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/_configuration.py @@ -34,10 +34,9 @@ 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-06-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. + :keyword api_version: The API version to use for this operation. Known values are "2026-08-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. :paramtype api_version: str """ @@ -49,7 +48,7 @@ def __init__( cloud_setting: Optional["AzureClouds"] = None, **kwargs: Any ) -> None: - api_version: str = kwargs.pop("api_version", "2026-06-15-preview") + api_version: str = kwargs.pop("api_version", "2026-08-01") 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 aa5777eb2f3b..b648ad20dcc4 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 = "18.0.0b3" +VERSION = "18.0.0" 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 04f821e47ebd..9c082b3ba830 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 @@ -22,7 +22,6 @@ from ._configuration import NetAppManagementClientConfiguration from .operations import ( AccountsOperations, - ActiveDirectoryConfigsOperations, BackupPoliciesOperations, BackupVaultsOperations, BackupsOperations, @@ -31,14 +30,6 @@ BackupsUnderVolumeOperations, BucketsOperations, CachesOperations, - ElasticAccountsOperations, - ElasticBackupPoliciesOperations, - ElasticBackupVaultsOperations, - ElasticBackupsOperations, - ElasticCapacityPoolsOperations, - ElasticSnapshotPoliciesOperations, - ElasticSnapshotsOperations, - ElasticVolumesOperations, NetAppResourceOperations, NetAppResourceQuotaLimitsAccountOperations, NetAppResourceQuotaLimitsOperations, @@ -96,28 +87,6 @@ class NetAppManagementClient: # pylint: disable=too-many-instance-attributes,do :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 @@ -151,10 +120,9 @@ class NetAppManagementClient: # pylint: disable=too-many-instance-attributes,do :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-06-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. + :keyword api_version: The API version to use for this operation. Known values are "2026-08-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. :paramtype api_version: str :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. @@ -230,29 +198,6 @@ 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 6e866c99cc2c..1bc73c9edd52 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 @@ -34,10 +34,9 @@ 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-06-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. + :keyword api_version: The API version to use for this operation. Known values are "2026-08-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. :paramtype api_version: str """ @@ -49,7 +48,7 @@ def __init__( cloud_setting: Optional["AzureClouds"] = None, **kwargs: Any ) -> None: - api_version: str = kwargs.pop("api_version", "2026-06-15-preview") + api_version: str = kwargs.pop("api_version", "2026-08-01") 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 dc8916780c55..4edfa8469e9a 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,15 +25,6 @@ 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 @@ -63,15 +54,6 @@ "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 0c451cf1888c..3d78ce91057c 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 @@ -49,12 +49,6 @@ 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, @@ -91,50 +85,6 @@ 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, @@ -376,6 +326,9 @@ def __init__(self, *args, **kwargs) -> None: "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def get( @@ -473,6 +426,9 @@ async def get( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def list(self, resource_group_name: str, account_name: str, **kwargs: Any) -> AsyncItemPaged["_models.QuotaItem"]: @@ -4005,6 +3961,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-long @@ -4224,6 +4183,9 @@ async def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-to "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long @@ -5037,6 +4999,9 @@ def list_replications( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def list_replications( @@ -7295,6 +7260,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _list_quota_report_initial( @@ -7513,6 +7481,9 @@ async def begin_list_quota_report( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_list_quota_report( @@ -11416,6 +11387,9 @@ def __init__(self, *args, **kwargs) -> None: "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def get( @@ -11535,6 +11509,9 @@ async def get( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def list( @@ -11676,6 +11653,9 @@ async def get_next(next_link=None): "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _clear_suspects_initial( @@ -11906,6 +11886,9 @@ async def begin_clear_suspects( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_clear_suspects( @@ -12859,6 +12842,9 @@ def __init__(self, *args, **kwargs) -> None: "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def get( @@ -12975,6 +12961,9 @@ async def get( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _create_or_update_initial( @@ -13205,6 +13194,9 @@ async def begin_create_or_update( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_create_or_update( @@ -13321,6 +13313,9 @@ def get_long_running_output(pipeline_response): "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _update_initial( @@ -13549,6 +13544,9 @@ async def begin_update( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_update( @@ -13663,6 +13661,9 @@ def get_long_running_output(pipeline_response): "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _delete_initial( @@ -13764,6 +13765,9 @@ async def _delete_initial( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_delete( @@ -13865,6 +13869,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def list( @@ -14120,6 +14127,9 @@ async def generate_credentials( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def generate_credentials( @@ -14251,6 +14261,9 @@ async def generate_credentials( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _generate_akv_credentials_initial( @@ -14474,6 +14487,9 @@ async def begin_generate_akv_credentials( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_generate_akv_credentials( @@ -14583,6 +14599,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _refresh_certificate_initial( @@ -14683,6 +14702,9 @@ async def _refresh_certificate_initial( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_refresh_certificate( @@ -14803,6 +14825,9 @@ def __init__(self, *args, **kwargs) -> None: "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def get( @@ -14908,6 +14933,9 @@ async def get( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _create_or_update_initial( @@ -15120,6 +15148,9 @@ async def begin_create_or_update( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_create_or_update( @@ -15229,6 +15260,9 @@ def get_long_running_output(pipeline_response): "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _update_initial( @@ -15442,6 +15476,9 @@ async def begin_update( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_update( @@ -15551,6 +15588,9 @@ def get_long_running_output(pipeline_response): "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _delete_initial( @@ -15641,6 +15681,9 @@ async def _delete_initial( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_delete( @@ -15731,6 +15774,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def list( @@ -15863,6 +15909,9 @@ async def get_next(next_link=None): "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def list_peering_passphrases( @@ -15969,6 +16018,9 @@ async def list_peering_passphrases( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _pool_change_initial( @@ -16179,6 +16231,9 @@ async def begin_pool_change( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_pool_change( @@ -16289,6 +16344,9 @@ def get_long_running_output(pipeline_response): "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _reset_smb_password_initial( @@ -16380,6 +16438,9 @@ async def _reset_smb_password_initial( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_reset_smb_password( @@ -16453,9813 +16514,6 @@ def get_long_running_output(pipeline_response): ) -class ElasticAccountsOperations: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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", - "2026-06-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: # pylint: disable=docstring-missing-param """ .. warning:: @@ -26966,6 +17220,9 @@ def get_long_running_output(pipeline_response): "2026-04-15-preview", "2026-05-15-preview", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def _update_initial( @@ -27147,6 +17404,9 @@ async def begin_update( "2026-04-15-preview", "2026-05-15-preview", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) async def begin_update( @@ -28273,7 +18533,14 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- 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", "2026-06-15-preview"], + api_versions_list=[ + "2026-04-15-preview", + "2026-05-15-preview", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", + ], ) async def _refresh_ldap_bind_password_initial( self, resource_group_name: str, account_name: str, **kwargs: Any @@ -28344,7 +18611,14 @@ async def _refresh_ldap_bind_password_initial( 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", "2026-06-15-preview"], + api_versions_list=[ + "2026-04-15-preview", + "2026-05-15-preview", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", + ], ) async def begin_refresh_ldap_bind_password( self, resource_group_name: str, account_name: str, **kwargs: Any 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 8b1da82c6286..dfb6672284b8 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 @@ -15,13 +15,11 @@ from ._models import ( # type: ignore AccountEncryption, + AccountEncryptionPatch, AccountProperties, AccountPropertiesPatch, ActiveDirectory, - ActiveDirectoryConfig, - ActiveDirectoryConfigProperties, - ActiveDirectoryConfigUpdate, - ActiveDirectoryConfigUpdateProperties, + ActiveDirectoryPatch, AuthorizeRequest, AzureKeyVaultDetails, Backup, @@ -59,10 +57,7 @@ CapacityPoolPatch, CertificateAkvDetails, ChangeKeyVault, - ChangeZoneRequest, CheckAvailabilityResponse, - CheckElasticResourceAvailabilityResponse, - CheckElasticVolumeFilePathAvailabilityRequest, CifsUser, ClusterPeerCommandResponse, ClusterPeerCommandResponseProperties, @@ -70,57 +65,9 @@ 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, + EncryptionIdentityPatch, EncryptionTransitionRequest, - EntraIdAkvConfig, - EntraIdAkvConfigPatch, - EntraIdConfig, - EntraIdConfigPatch, ErrorAdditionalInfo, ErrorDetail, ErrorResponse, @@ -134,6 +81,7 @@ HourlySchedule, KeyVaultPrivateEndpoint, KeyVaultProperties, + KeyVaultPropertiesPatch, LdapConfiguration, LdapConfigurationPatch, LdapSearchScopeOpt, @@ -185,9 +133,6 @@ Resource, ResourceNameAvailabilityRequest, RestoreStatus, - SecretPassword, - SecretPasswordIdentity, - SecretPasswordKeyVaultProperties, ServiceSpecification, SmbSettings, Snapshot, @@ -253,8 +198,6 @@ CacheFileAccessLogs, CacheLifeCycleState, CacheProvisioningState, - CheckElasticResourceAvailabilityReason, - CheckElasticResourceAvailabilityStatus, CheckNameResourceTypes, CheckQuotaNameResourceTypes, ChownMode, @@ -263,22 +206,7 @@ CoolAccessTieringPolicy, CreatedByType, CredentialsStatus, - DayOfWeek, DesiredRansomwareProtectionState, - ElasticBackupPolicyState, - ElasticBackupType, - ElasticKeyVaultStatus, - ElasticNfsv3Access, - ElasticNfsv4Access, - ElasticPoolEncryptionKeySource, - ElasticProtocolType, - ElasticResourceAvailabilityStatus, - ElasticRootAccess, - ElasticServiceLevel, - ElasticSmbEncryption, - ElasticUnixAccessRule, - ElasticVolumePolicyEnforcement, - ElasticVolumeRestorationState, EnableSubvolumes, EnableWriteBackState, EncryptionKeySource, @@ -293,7 +221,6 @@ KerberosState, KeySource, KeyVaultStatus, - LargeVolumeType, LdapServerType, LdapState, ManagedServiceIdentityType, @@ -304,7 +231,6 @@ NetworkFeatures, NetworkSiblingSetProvisioningState, OnCertificateConflictAction, - PolicyStatus, ProtocolTypes, QosType, QuotaType, @@ -321,13 +247,10 @@ SmbAccessBasedEnumeration, SmbEncryptionState, SmbNonBrowsable, - SnapshotDirectoryVisibility, - SnapshotUsage, VolumeBackupRelationshipStatus, VolumeLanguage, VolumeReplicationRelationshipStatus, VolumeRestoreRelationshipStatus, - VolumeSize, VolumeStorageToNetworkProximity, ) from ._patch import __all__ as _patch_all @@ -336,13 +259,11 @@ __all__ = [ "AccountEncryption", + "AccountEncryptionPatch", "AccountProperties", "AccountPropertiesPatch", "ActiveDirectory", - "ActiveDirectoryConfig", - "ActiveDirectoryConfigProperties", - "ActiveDirectoryConfigUpdate", - "ActiveDirectoryConfigUpdateProperties", + "ActiveDirectoryPatch", "AuthorizeRequest", "AzureKeyVaultDetails", "Backup", @@ -380,10 +301,7 @@ "CapacityPoolPatch", "CertificateAkvDetails", "ChangeKeyVault", - "ChangeZoneRequest", "CheckAvailabilityResponse", - "CheckElasticResourceAvailabilityResponse", - "CheckElasticVolumeFilePathAvailabilityRequest", "CifsUser", "ClusterPeerCommandResponse", "ClusterPeerCommandResponseProperties", @@ -391,57 +309,9 @@ "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", + "EncryptionIdentityPatch", "EncryptionTransitionRequest", - "EntraIdAkvConfig", - "EntraIdAkvConfigPatch", - "EntraIdConfig", - "EntraIdConfigPatch", "ErrorAdditionalInfo", "ErrorDetail", "ErrorResponse", @@ -455,6 +325,7 @@ "HourlySchedule", "KeyVaultPrivateEndpoint", "KeyVaultProperties", + "KeyVaultPropertiesPatch", "LdapConfiguration", "LdapConfigurationPatch", "LdapSearchScopeOpt", @@ -506,9 +377,6 @@ "Resource", "ResourceNameAvailabilityRequest", "RestoreStatus", - "SecretPassword", - "SecretPasswordIdentity", - "SecretPasswordKeyVaultProperties", "ServiceSpecification", "SmbSettings", "Snapshot", @@ -571,8 +439,6 @@ "CacheFileAccessLogs", "CacheLifeCycleState", "CacheProvisioningState", - "CheckElasticResourceAvailabilityReason", - "CheckElasticResourceAvailabilityStatus", "CheckNameResourceTypes", "CheckQuotaNameResourceTypes", "ChownMode", @@ -581,22 +447,7 @@ "CoolAccessTieringPolicy", "CreatedByType", "CredentialsStatus", - "DayOfWeek", "DesiredRansomwareProtectionState", - "ElasticBackupPolicyState", - "ElasticBackupType", - "ElasticKeyVaultStatus", - "ElasticNfsv3Access", - "ElasticNfsv4Access", - "ElasticPoolEncryptionKeySource", - "ElasticProtocolType", - "ElasticResourceAvailabilityStatus", - "ElasticRootAccess", - "ElasticServiceLevel", - "ElasticSmbEncryption", - "ElasticUnixAccessRule", - "ElasticVolumePolicyEnforcement", - "ElasticVolumeRestorationState", "EnableSubvolumes", "EnableWriteBackState", "EncryptionKeySource", @@ -611,7 +462,6 @@ "KerberosState", "KeySource", "KeyVaultStatus", - "LargeVolumeType", "LdapServerType", "LdapState", "ManagedServiceIdentityType", @@ -622,7 +472,6 @@ "NetworkFeatures", "NetworkSiblingSetProvisioningState", "OnCertificateConflictAction", - "PolicyStatus", "ProtocolTypes", "QosType", "QuotaType", @@ -639,13 +488,10 @@ "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 62ffb1dd3c49..621e5932c44e 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,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -169,24 +168,6 @@ 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.""" @@ -299,9 +280,9 @@ class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): class CredentialsStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """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. + \"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. """ NO_CREDENTIALS_SET = "NoCredentialsSet" @@ -313,25 +294,6 @@ 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.""" @@ -341,142 +303,6 @@ 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. @@ -635,21 +461,6 @@ 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.""" @@ -713,6 +524,12 @@ class MultiAdStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): class NetAppProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Gets the status of the VolumeQuotaRule at the time the operation was called.""" + SUCCEEDED = "Succeeded" + """Resource has been created.""" + FAILED = "Failed" + """Resource creation failed.""" + CANCELED = "Canceled" + """Resource creation was canceled.""" ACCEPTED = "Accepted" """Resource has been Accepted.""" CREATING = "Creating" @@ -725,10 +542,6 @@ class NetAppProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Resource is being Deleted.""" MOVING = "Moving" """Resource is being Moved.""" - FAILED = "Failed" - """Resource has Failed.""" - SUCCEEDED = "Succeeded" - """Resource has Succeeded.""" class NetworkFeatures(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -776,15 +589,6 @@ 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.""" @@ -969,26 +773,6 @@ 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.""" @@ -1167,15 +951,6 @@ 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 5672eb036ddd..44a91d0cf355 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 @@ -66,6 +66,55 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class AccountEncryptionPatch(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only + """Encryption settings for PATCH operations (no default values). + + :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 KeVault. Applicable if keySource is + 'Microsoft.KeyVault'. + :vartype key_vault_properties: ~azure.mgmt.netapp.models.KeyVaultPropertiesPatch + :ivar identity: Identity used to authenticate to KeyVault. Applicable if keySource is + 'Microsoft.KeyVault'. + :vartype identity: ~azure.mgmt.netapp.models.EncryptionIdentityPatch + """ + + 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.KeyVaultPropertiesPatch"] = rest_field( + name="keyVaultProperties", visibility=["read", "create", "update", "delete", "query"] + ) + """Properties provided by KeVault. Applicable if keySource is 'Microsoft.KeyVault'.""" + identity: Optional["_models.EncryptionIdentityPatch"] = 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.KeyVaultPropertiesPatch"] = None, + identity: Optional["_models.EncryptionIdentityPatch"] = 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 AccountProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only """NetApp account properties. @@ -73,8 +122,6 @@ class AccountProperties(_Model): # pylint: disable=docstring-keyword-should-mat :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 @@ -96,10 +143,6 @@ class AccountProperties(_Model): # pylint: disable=docstring-keyword-should-mat 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"] ) @@ -125,7 +168,6 @@ 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, @@ -146,23 +188,21 @@ class AccountPropertiesPatch(_Model): # pylint: disable=docstring-keyword-shoul """NetApp account patch properties. :ivar active_directories: Active Directories. - :vartype active_directories: list[~azure.mgmt.netapp.models.ActiveDirectory] + :vartype active_directories: list[~azure.mgmt.netapp.models.ActiveDirectoryPatch] :ivar encryption: Encryption settings. - :vartype encryption: ~azure.mgmt.netapp.models.AccountEncryption + :vartype encryption: ~azure.mgmt.netapp.models.AccountEncryptionPatch :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( + active_directories: Optional[list["_models.ActiveDirectoryPatch"]] = rest_field( name="activeDirectories", visibility=["read", "create", "update", "delete", "query"] ) """Active Directories.""" - encryption: Optional["_models.AccountEncryption"] = rest_field( + encryption: Optional["_models.AccountEncryptionPatch"] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) """Encryption settings.""" @@ -171,10 +211,6 @@ class AccountPropertiesPatch(_Model): # pylint: disable=docstring-keyword-shoul ) """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"] ) @@ -184,10 +220,9 @@ class AccountPropertiesPatch(_Model): # pylint: disable=docstring-keyword-shoul def __init__( self, *, - active_directories: Optional[list["_models.ActiveDirectory"]] = None, - encryption: Optional["_models.AccountEncryption"] = None, + active_directories: Optional[list["_models.ActiveDirectoryPatch"]] = None, + encryption: Optional["_models.AccountEncryptionPatch"] = None, nfs_v4_id_domain: Optional[str] = None, - entra_id_config: Optional["_models.EntraIdConfigPatch"] = None, ldap_configuration: Optional["_models.LdapConfigurationPatch"] = None, ) -> None: ... @@ -390,156 +425,27 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) -class Resource(_Model): - """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 - """ - - id: Optional[str] = rest_field(visibility=["read"]) - """Fully qualified resource ID for the resource. Ex - - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.""" - name: Optional[str] = rest_field(visibility=["read"]) - """The name of the resource.""" - type: Optional[str] = rest_field(visibility=["read"]) - """The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or - \"Microsoft.Storage/storageAccounts\".""" - system_data: Optional["_models.SystemData"] = rest_field(name="systemData", visibility=["read"]) - """Azure Resource Manager metadata containing createdBy and modifiedBy information.""" - - -class TrackedResource(Resource): # pylint: disable=docstring-keyword-should-match-keyword-only - """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: ~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 - """ - - 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, - *, - location: str, - 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 ActiveDirectoryConfig(TrackedResource): # pylint: disable=docstring-keyword-should-match-keyword-only - """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: ~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.ActiveDirectoryConfigProperties"] = rest_field( - visibility=["read", "create", "update", "delete", "query"] - ) - """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, - *, - location: str, - tags: Optional[dict[str, str]] = None, - properties: Optional["_models.ActiveDirectoryConfigProperties"] = 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 ActiveDirectoryConfigProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Active Directory Configuration properties. +class ActiveDirectoryPatch(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only + """Active Directory settings for PATCH operations (no default values). - :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 active_directory_id: Id of the Active Directory. + :vartype active_directory_id: str + :ivar username: A domain user account with permission to create machine accounts. + :vartype username: str + :ivar password: Plain text password of Active Directory domain administrator, value is masked + in the response. + :vartype password: str + :ivar domain: Name of the Active Directory domain. + :vartype domain: str + :ivar dns: Comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory + domain. + :vartype dns: 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. @@ -547,27 +453,52 @@ class ActiveDirectoryConfigProperties(_Model): # pylint: disable=docstring-keyw :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 + :ivar kdc_ip: kdc server IP address for the active directory machine. This optional parameter + is used only while creating kerberos volume. + :vartype kdc_ip: str + :ivar ad_name: Name of the active directory machine. This optional parameter is used only while + creating kerberos volume. + :vartype ad_name: str + :ivar server_root_ca_certificate: When LDAP over SSL/TLS is enabled, the LDAP client is + required to have base64 encoded Active Directory Certificate Service's self-signed root CA + certificate, this optional parameter is used only for dual protocol with LDAP user-mapping + volumes. + :vartype server_root_ca_certificate: str + :ivar aes_encryption: If enabled, AES encryption will be enabled for SMB communication. + :vartype aes_encryption: bool + :ivar ldap_signing: Specifies whether or not the LDAP traffic needs to be signed. + :vartype ldap_signing: bool + :ivar security_operators: Domain Users in the Active directory to be given SeSecurityPrivilege 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 + :ivar ldap_over_tls: Specifies whether or not the LDAP traffic needs to be secured via TLS. + :vartype ldap_over_tls: bool + :ivar allow_local_nfs_users_with_ldap: If enabled, NFS client local users can also (in addition + to LDAP users) access the NFS volumes. + :vartype allow_local_nfs_users_with_ldap: bool + :ivar encrypt_dc_connections: If enabled, Traffic between the SMB server to Domain Controller + (DC) will be encrypted. + :vartype encrypt_dc_connections: bool + :ivar ldap_search_scope: LDAP Search scope options. + :vartype ldap_search_scope: ~azure.mgmt.netapp.models.LdapSearchScopeOpt + :ivar preferred_servers_for_ldap_client: Comma separated list of IPv4 addresses of preferred + servers for LDAP client. At most two comma separated IPv4 addresses can be passed. + :vartype preferred_servers_for_ldap_client: str """ - user_name: Optional[str] = rest_field(name="userName", visibility=["read", "create", "update", "delete", "query"]) + active_directory_id: Optional[str] = rest_field( + name="activeDirectoryId", visibility=["read", "create", "update", "delete", "query"] + ) + """Id of the Active Directory.""" + username: Optional[str] = rest_field(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.""" + password: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Plain text password of Active Directory domain administrator, value is masked in the response.""" + domain: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Name of the Active Directory domain.""" + dns: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory domain.""" smb_server_name: Optional[str] = rest_field( name="smbServerName", visibility=["read", "create", "update", "delete", "query"] ) @@ -577,8 +508,8 @@ class ActiveDirectoryConfigProperties(_Model): # pylint: disable=docstring-keyw 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.""" + 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"] ) @@ -587,176 +518,78 @@ class ActiveDirectoryConfigProperties(_Model): # pylint: disable=docstring-keyw 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"] + kdc_ip: Optional[str] = rest_field(name="kdcIP", visibility=["read", "create", "update", "delete", "query"]) + """kdc server IP address for the active directory machine. This optional parameter is used only + while creating kerberos volume.""" + ad_name: Optional[str] = rest_field(name="adName", visibility=["read", "create", "update", "delete", "query"]) + """Name of the active directory machine. This optional parameter is used only while creating + kerberos volume.""" + server_root_ca_certificate: Optional[str] = rest_field( + name="serverRootCACertificate", 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"] + """When LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded Active + Directory Certificate Service's self-signed root CA certificate, this optional parameter is + used only for dual protocol with LDAP user-mapping volumes.""" + aes_encryption: Optional[bool] = rest_field( + name="aesEncryption", visibility=["read", "create", "update", "delete", "query"] ) - """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, - *, - 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 - 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 ActiveDirectoryConfigUpdate(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """The type used for update operations of the ActiveDirectoryConfig. - - :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.ActiveDirectoryConfigUpdateProperties - """ - - identity: Optional["_models.ManagedServiceIdentity"] = rest_field( - visibility=["read", "create", "update", "delete", "query"] + """If enabled, AES encryption will be enabled for SMB communication.""" + ldap_signing: Optional[bool] = rest_field( + name="ldapSigning", 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.ActiveDirectoryConfigUpdateProperties"] = rest_field( - visibility=["read", "create", "update", "delete", "query"] + """Specifies whether or not the LDAP traffic needs to be signed.""" + security_operators: Optional[list[str]] = rest_field( + name="securityOperators", 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.ActiveDirectoryConfigUpdateProperties"] = 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 ActiveDirectoryConfigUpdateProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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: ~azure.mgmt.netapp.models.SecretPassword - """ - - 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"] + """Domain Users in the Active directory to be given SeSecurityPrivilege privilege (Needed for SMB + Continuously available shares for SQL). A list of unique usernames without domain specifier.""" + ldap_over_tls: Optional[bool] = rest_field( + name="ldapOverTLS", 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"] + """Specifies whether or not the LDAP traffic needs to be secured via TLS.""" + allow_local_nfs_users_with_ldap: Optional[bool] = rest_field( + name="allowLocalNfsUsersWithLdap", 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"] + """If enabled, NFS client local users can also (in addition to LDAP users) access the NFS volumes.""" + encrypt_dc_connections: Optional[bool] = rest_field( + name="encryptDCConnections", 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"] + """If enabled, Traffic between the SMB server to Domain Controller (DC) will be encrypted.""" + ldap_search_scope: Optional["_models.LdapSearchScopeOpt"] = rest_field( + name="ldapSearchScope", 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"] + """LDAP Search scope options.""" + preferred_servers_for_ldap_client: Optional[str] = rest_field( + name="preferredServersForLdapClient", visibility=["read", "create", "update", "delete", "query"] ) - """Access password from Azure KeyVault Secrets to connect Active Directory.""" + """Comma separated list of IPv4 addresses of preferred servers for LDAP client. At most two comma + separated IPv4 addresses can be passed.""" @overload def __init__( self, *, - user_name: Optional[str] = None, - dns: Optional[list[str]] = None, + active_directory_id: Optional[str] = None, + username: Optional[str] = None, + password: Optional[str] = None, + domain: Optional[str] = None, + dns: Optional[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, + kdc_ip: Optional[str] = None, + ad_name: Optional[str] = None, + server_root_ca_certificate: Optional[str] = None, + aes_encryption: Optional[bool] = None, + ldap_signing: Optional[bool] = None, security_operators: Optional[list[str]] = None, - domain: Optional[str] = None, - secret_password: Optional["_models.SecretPassword"] = None, + ldap_over_tls: Optional[bool] = None, + allow_local_nfs_users_with_ldap: Optional[bool] = None, + encrypt_dc_connections: Optional[bool] = None, + ldap_search_scope: Optional["_models.LdapSearchScopeOpt"] = None, + preferred_servers_for_ldap_client: Optional[str] = None, ) -> None: ... @overload @@ -852,6 +685,34 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class Resource(_Model): + """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 + """ + + id: Optional[str] = rest_field(visibility=["read"]) + """Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.""" + name: Optional[str] = rest_field(visibility=["read"]) + """The name of the resource.""" + type: Optional[str] = rest_field(visibility=["read"]) + """The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or + \"Microsoft.Storage/storageAccounts\".""" + system_data: Optional["_models.SystemData"] = rest_field(name="systemData", visibility=["read"]) + """Azure Resource Manager metadata containing createdBy and modifiedBy information.""" + + class ProxyResource(Resource): """Proxy Resource. @@ -1021,6 +882,50 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class TrackedResource(Resource): # pylint: disable=docstring-keyword-should-match-keyword-only + """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: ~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 + """ + + 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, + *, + location: str, + 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 BackupPolicy(TrackedResource): # pylint: disable=docstring-keyword-should-match-keyword-only """Backup policy information. @@ -1926,8 +1831,8 @@ class BucketPatchProperties(_Model): # pylint: disable=docstring-keyword-should 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". + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Accepted", "Creating", "Patching", "Updating", "Deleting", and "Moving". :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 @@ -1959,8 +1864,8 @@ class BucketPatchProperties(_Model): # pylint: disable=docstring-keyword-should 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\".""" + """Provisioning state of the resource. Known values are: \"Succeeded\", \"Failed\", \"Canceled\", + \"Accepted\", \"Creating\", \"Patching\", \"Updating\", \"Deleting\", and \"Moving\".""" server: Optional["_models.BucketServerPatchProperties"] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) @@ -2018,8 +1923,8 @@ class BucketProperties(_Model): # pylint: disable=docstring-keyword-should-matc 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". + :ivar provisioning_state: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Accepted", "Creating", "Patching", "Updating", "Deleting", and "Moving". :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState :ivar status: The bucket credentials status. There states: @@ -2062,8 +1967,8 @@ class BucketProperties(_Model): # pylint: disable=docstring-keyword-should-matc 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\".""" + """Provisioning state of the resource. Known values are: \"Succeeded\", \"Failed\", \"Canceled\", + \"Accepted\", \"Creating\", \"Patching\", \"Updating\", \"Deleting\", and \"Moving\".""" status: Optional[Union[str, "_models.CredentialsStatus"]] = rest_field(visibility=["read"]) """The bucket credentials status. There states: @@ -2864,11 +2769,6 @@ class CertificateAkvDetails(_Model): # pylint: disable=docstring-keyword-should :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( @@ -2879,13 +2779,6 @@ class CertificateAkvDetails(_Model): # pylint: disable=docstring-keyword-should 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__( @@ -2893,7 +2786,6 @@ def __init__( *, certificate_key_vault_uri: Optional[str] = None, certificate_name: Optional[str] = None, - user_assigned_identity: Optional[str] = None, ) -> None: ... @overload @@ -2959,34 +2851,6 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) -class ChangeZoneRequest(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only """Information regarding availability of a resource. @@ -3041,98 +2905,11 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) -class CheckElasticResourceAvailabilityResponse(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Information regarding availability of a resource. +class CifsUser(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only + """The effective CIFS username when accessing the volume data. - :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,docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """The effective CIFS username when accessing the volume data. - - :ivar username: The CIFS user's username. - :vartype username: str + :ivar username: The CIFS user's username. + :vartype username: str """ username: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) @@ -3237,11 +3014,6 @@ class CredentialsAkvDetails(_Model): # pylint: disable=docstring-keyword-should "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( @@ -3258,13 +3030,6 @@ class CredentialsAkvDetails(_Model): # pylint: disable=docstring-keyword-should \"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__( @@ -3272,7 +3037,6 @@ def __init__( *, credentials_key_vault_uri: Optional[str] = None, secret_name: Optional[str] = None, - user_assigned_identity: Optional[str] = None, ) -> None: ... @overload @@ -3388,2299 +3152,20 @@ class Dimension(_Model): # pylint: disable=docstring-keyword-should-match-keywo :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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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"] - ) - """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"] - ) - """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"] - ) - """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"] - ) - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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 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"] - ) - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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"] - ) - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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"] - ) - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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"] - ) - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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"] - ) - """Monthly snapshot count to keep.""" - days_of_month: Optional[list[int]] = rest_field( - name="daysOfMonth", visibility=["read", "create", "update", "delete", "query"] - ) - """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, - *, - snapshots_to_keep: Optional[int] = None, - days_of_month: Optional[list[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 ElasticSnapshotPolicyProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Elastic Snapshot policy properties. - - :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 - """ - - 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\".""" - 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, - *, - 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 ElasticSnapshotPolicyUpdate(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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.ElasticSnapshotPolicyUpdateProperties - """ - - tags: Optional[dict[str, str]] = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """Resource tags.""" - properties: Optional["_models.ElasticSnapshotPolicyUpdateProperties"] = 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.ElasticSnapshotPolicyUpdateProperties"] = 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 ElasticSnapshotPolicyUpdateProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """The updatable properties of the ElasticSnapshotPolicy. - - :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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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 - """ - - snapshots_to_keep: Optional[int] = rest_field( - name="snapshotsToKeep", 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"] - ) - """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, - *, - snapshots_to_keep: Optional[int] = None, - days: Optional[list[Union[str, "_models.DayOfWeek"]]] = 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 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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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: ~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.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: 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.""" - 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.ElasticVolumeProperties"] = 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 ElasticVolumeBackupProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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: 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 - """ - - elastic_backup_policy_resource_id: Optional[str] = rest_field( - name="elasticBackupPolicyResourceId", visibility=["read", "create", "update", "delete", "query"] - ) - """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, - *, - 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 - 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 ElasticVolumeDataProtectionPatchProperties( - _Model -): # pylint: disable=name-too-long,docstring-keyword-should-match-keyword-only - """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: ~azure.mgmt.netapp.models.ElasticVolumeSnapshotProperties - :ivar backup: Used to configure backups on an elastic volume. - :vartype backup: ~azure.mgmt.netapp.models.ElasticVolumeBackupProperties - """ - - snapshot: Optional["_models.ElasticVolumeSnapshotProperties"] = rest_field( - 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"] - ) - """Used to configure backups on an elastic volume.""" - - @overload - def __init__( - self, - *, - snapshot: Optional["_models.ElasticVolumeSnapshotProperties"] = None, - backup: Optional["_models.ElasticVolumeBackupProperties"] = 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 ElasticVolumeDataProtectionProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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: ~azure.mgmt.netapp.models.ElasticVolumeSnapshotProperties - :ivar backup: Used to configure backups on an elastic volume. - :vartype backup: ~azure.mgmt.netapp.models.ElasticVolumeBackupProperties - """ - - snapshot: Optional["_models.ElasticVolumeSnapshotProperties"] = rest_field( - 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"] - ) - """Used to configure backups on an elastic volume.""" - - @overload - def __init__( - self, - *, - snapshot: Optional["_models.ElasticVolumeSnapshotProperties"] = None, - backup: Optional["_models.ElasticVolumeBackupProperties"] = 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 ElasticVolumeProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Elastic Volume properties. - - :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 - """ - - 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"] - ) - """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"] - ) - """The current state of the restoration process. Known values are: \"Restoring\", \"Restored\", - and \"Failed\".""" - - @overload - def __init__( - self, - *, - 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 - 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 ElasticVolumeRevert(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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 - """ - - snapshot_resource_id: Optional[str] = rest_field(name="snapshotResourceId", visibility=["read", "create"]) - """Resource identifier used to identify the Elastic Snapshot.""" - - @overload - def __init__( - self, - *, - 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 ElasticVolumeSnapshotProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Elastic Volume Snapshot Properties. - - :ivar snapshot_policy_resource_id: Snapshot Policy ResourceId. - :vartype snapshot_policy_resource_id: str - """ - - snapshot_policy_resource_id: Optional[str] = rest_field( - name="snapshotPolicyResourceId", visibility=["read", "create", "update", "delete", "query"] - ) - """Snapshot Policy ResourceId.""" - - @overload - def __init__( - self, - *, - snapshot_policy_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 ElasticVolumeUpdate(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """The type used for update operations of the ElasticVolume. - - :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 - """ - - 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"] - ) - """The resource-specific properties for this resource.""" - - @overload - def __init__( - self, - *, - tags: Optional[dict[str, str]] = None, - properties: Optional["_models.ElasticVolumeUpdateProperties"] = 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 ElasticVolumeUpdateProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """The updatable properties of the ElasticVolume. - - :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 - """ - - 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"] - ) - """Set of export policy rules.""" - data_protection: Optional["_models.ElasticVolumeDataProtectionPatchProperties"] = 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.ElasticSmbPatchProperties"] = rest_field( - name="smbProperties", visibility=["read", "create", "update", "delete", "query"] - ) - """SMB Properties.""" - - @overload - def __init__( - self, - *, - 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 - 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 EncryptionIdentity(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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 EncryptionTransitionRequest(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Encryption transition request. - - :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 - """ - - virtual_network_id: str = rest_field( - name="virtualNetworkId", 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"] - ) - """Identifier of the private endpoint to reach the Azure Key Vault. Required.""" - - @overload - def __init__( - self, - *, - virtual_network_id: str, - private_endpoint_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 EntraIdAkvConfig(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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 - """ - - azure_key_vault_uri: str = rest_field( - name="azureKeyVaultUri", visibility=["read", "create", "update", "delete", "query"] - ) - """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"] + + 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"] ) - """The ARM resource identifier of the user assigned identity used to authenticate with key vault.""" + """Display name of dimension.""" @overload def __init__( self, *, - azure_key_vault_uri: str, - certificate_name: str, - user_assigned_identity: Optional[str] = None, + name: Optional[str] = None, + display_name: Optional[str] = None, ) -> None: ... @overload @@ -5694,38 +3179,40 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) -class EntraIdAkvConfigPatch(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Entra ID Patch configuration for the account. +class EncryptionIdentity(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only + """Identity used to authenticate with key vault. - :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 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. + 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 """ - 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.""" + 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.""" + """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, *, - 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 @@ -5739,50 +3226,35 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) -class EntraIdConfig(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Entra ID configuration for the account. +class EncryptionIdentityPatch(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only + """Identity used to authenticate with key vault for PATCH operations. - :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 + :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 """ - 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"] + user_assigned_identity: Optional[str] = rest_field( + name="userAssignedIdentity", 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"] + """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"] ) - """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.""" + """ClientId of the multi-tenant Entra ID Application. Used to access cross-tenant keyvaults.""" @overload def __init__( self, *, - application_id: str, - domain: str, - server_name_prefix: str, - entra_id_akv_config: Optional["_models.EntraIdAkvConfig"] = None, + user_assigned_identity: Optional[str] = None, + federated_client_id: Optional[str] = None, ) -> None: ... @overload @@ -5796,50 +3268,31 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) -class EntraIdConfigPatch(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """Entra ID Patch configuration for the account. +class EncryptionTransitionRequest(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only + """Encryption transition request. - :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 + :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 """ - application_id: Optional[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.""" - 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"] + virtual_network_id: str = rest_field( + name="virtualNetworkId", 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.""" - entra_id_akv_config: Optional["_models.EntraIdAkvConfigPatch"] = rest_field( - name="entraIdAkvConfig", 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"] ) - """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.""" + """Identifier of the private endpoint to reach the Azure Key Vault. Required.""" @overload def __init__( self, *, - application_id: Optional[str] = None, - domain: Optional[str] = None, - server_name_prefix: Optional[str] = None, - entra_id_akv_config: Optional["_models.EntraIdAkvConfigPatch"] = None, + virtual_network_id: str, + private_endpoint_id: str, ) -> None: ... @overload @@ -6431,6 +3884,48 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class KeyVaultPropertiesPatch(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only + """Properties of key vault for PATCH operations (no required properties). + + :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 + """ + + key_vault_uri: Optional[str] = rest_field( + name="keyVaultUri", visibility=["read", "create", "update", "delete", "query"] + ) + """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"] + ) + """The resource ID of KeyVault.""" + + @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 LdapConfiguration(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only """LDAP configuration. @@ -7168,7 +4663,6 @@ class NetAppAccount(TrackedResource): # pylint: disable=docstring-keyword-shoul __flattened_items = [ "provisioning_state", "active_directories", - "entra_id_config", "encryption", "disable_showmount", "nfs_v4_id_domain", @@ -7237,13 +4731,7 @@ class NetAppAccountPatch(_Model): # pylint: disable=docstring-keyword-should-ma ) """NetApp Account properties.""" - __flattened_items = [ - "active_directories", - "encryption", - "nfs_v4_id_domain", - "entra_id_config", - "ldap_configuration", - ] + __flattened_items = ["active_directories", "encryption", "nfs_v4_id_domain", "ldap_configuration"] @overload def __init__( @@ -7768,8 +5256,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class PoolPatchProperties(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only """Patchable pool properties. - :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). + :ivar size: Provisioned size of the pool (in bytes). Allowed values are 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 @@ -7781,8 +5269,8 @@ class PoolPatchProperties(_Model): # pylint: disable=docstring-keyword-should-m """ size: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888 bytes) or in - 1TiB chunks (value must be multiple of 1099511627776).""" + """Provisioned size of the pool (in bytes). Allowed values are 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"] ) @@ -7823,8 +5311,8 @@ class PoolProperties(_Model): # pylint: disable=docstring-keyword-should-match- :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 512GiB (549755813888 - bytes) or in 1TiB chunks (value must be multiple of 1099511627776). Required. + :ivar size: Provisioned size of the pool (in bytes). Allowed values are 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". @@ -7851,8 +5339,8 @@ class PoolProperties(_Model): # pylint: disable=docstring-keyword-should-match- 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 512GiB (549755813888 bytes) or in - 1TiB chunks (value must be multiple of 1099511627776). Required.""" + """Provisioned size of the pool (in bytes). Allowed values are 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"] ) @@ -9021,116 +6509,6 @@ class RestoreStatus(_Model): """Displays the total bytes transferred.""" -class SecretPassword(_Model): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only - """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): # pylint: disable=docstring-keyword-should-match-keyword-only """One property of operation, include metric specifications. @@ -9175,12 +6553,11 @@ class SmbSettings(_Model): # pylint: disable=docstring-keyword-should-match-key SMB/DualProtocol cache. Known values are: "Disabled" and "Enabled". :vartype smb_encryption: str or ~azure.mgmt.netapp.models.SmbEncryptionState :ivar smb_access_based_enumeration: Enables access-based enumeration share property for SMB - Shares. Only applicable for SMB/DualProtocol volume. Known values are: "Disabled" and - "Enabled". + Shares. Only applicable for SMB/DualProtocol cache. Known values are: "Disabled" and "Enabled". :vartype smb_access_based_enumeration: str or ~azure.mgmt.netapp.models.SmbAccessBasedEnumeration :ivar smb_non_browsable: Enables non-browsable property for SMB Shares. Only applicable for - SMB/DualProtocol volume. Known values are: "Disabled" and "Enabled". + SMB/DualProtocol cache. Known values are: "Disabled" and "Enabled". :vartype smb_non_browsable: str or ~azure.mgmt.netapp.models.SmbNonBrowsable """ @@ -9193,11 +6570,11 @@ class SmbSettings(_Model): # pylint: disable=docstring-keyword-should-match-key name="smbAccessBasedEnumeration", visibility=["read", "create", "update", "delete", "query"] ) """Enables access-based enumeration share property for SMB Shares. Only applicable for - SMB/DualProtocol volume. Known values are: \"Disabled\" and \"Enabled\".""" + SMB/DualProtocol cache. Known values are: \"Disabled\" and \"Enabled\".""" smb_non_browsable: Optional[Union[str, "_models.SmbNonBrowsable"]] = rest_field( name="smbNonBrowsable", visibility=["read", "create", "update", "delete", "query"] ) - """Enables non-browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume. + """Enables non-browsable property for SMB Shares. Only applicable for SMB/DualProtocol cache. Known values are: \"Disabled\" and \"Enabled\".""" @overload @@ -10353,7 +7730,6 @@ class Volume(TrackedResource): # pylint: disable=docstring-keyword-should-match "encryption_key_source", "key_vault_private_endpoint_resource_id", "ldap_enabled", - "ldap_server_type", "cool_access", "coolness_period", "cool_access_retrieval_policy", @@ -10377,10 +7753,8 @@ class Volume(TrackedResource): # pylint: disable=docstring-keyword-should-match "enable_subvolumes", "provisioned_availability_zone", "is_large_volume", - "large_volume_type", "originating_resource_id", "inherited_size_in_bytes", - "language", "breakthrough_mode", ] @@ -10845,7 +8219,6 @@ class VolumeGroupVolumeProperties(_Model): # pylint: disable=docstring-keyword- "encryption_key_source", "key_vault_private_endpoint_resource_id", "ldap_enabled", - "ldap_server_type", "cool_access", "coolness_period", "cool_access_retrieval_policy", @@ -10869,10 +8242,8 @@ class VolumeGroupVolumeProperties(_Model): # pylint: disable=docstring-keyword- "enable_subvolumes", "provisioned_availability_zone", "is_large_volume", - "large_volume_type", "originating_resource_id", "inherited_size_in_bytes", - "language", "breakthrough_mode", ] @@ -11014,8 +8385,7 @@ class VolumePatchProperties(_Model): # pylint: disable=docstring-keyword-should :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. For extra large volumes, valid values are in the - range 2400GiB to 7200TiB. Values expressed in bytes as multiples of 1 GiB. + exceptional basis, from to 2400GiB to 2400TiB. 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 @@ -11089,8 +8459,7 @@ class VolumePatchProperties(_Model): # pylint: disable=docstring-keyword-should """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. For extra large volumes, valid values are in the range 2400GiB to 7200TiB. - Values expressed in bytes as multiples of 1 GiB.""" + 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB.""" export_policy: Optional["_models.VolumePatchPropertiesExportPolicy"] = rest_field( name="exportPolicy", visibility=["read", "create", "update", "delete", "query"] ) @@ -11295,8 +8664,8 @@ class VolumeProperties(_Model): # pylint: disable=docstring-keyword-should-matc :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. For extra large volumes, valid values are in the - range 2400GiB to 7200TiB. Values expressed in bytes as multiples of 1 GiB. Required. + exceptional basis, from to 2400GiB to 2400TiB. 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 @@ -11390,9 +8759,6 @@ class VolumeProperties(_Model): # pylint: disable=docstring-keyword-should-matc :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 @@ -11472,27 +8838,11 @@ class VolumeProperties(_Model): # pylint: disable=docstring-keyword-should-matc :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 @@ -11511,8 +8861,7 @@ class VolumeProperties(_Model): # pylint: disable=docstring-keyword-should-matc """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. For extra large volumes, valid values are in the range 2400GiB to 7200TiB. - Values expressed in bytes as multiples of 1 GiB. Required.""" + 2400GiB to 2400TiB. 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"] ) @@ -11629,11 +8978,6 @@ class VolumeProperties(_Model): # pylint: disable=docstring-keyword-should-matc 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"] ) @@ -11735,32 +9079,10 @@ class VolumeProperties(_Model): # pylint: disable=docstring-keyword-should-matc 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"] ) @@ -11797,7 +9119,6 @@ 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, @@ -11813,8 +9134,6 @@ 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: ... @@ -12043,8 +9362,8 @@ class VolumeQuotaRulesProperties(_Model): # pylint: disable=docstring-keyword-s """Volume Quota Rule properties. :ivar provisioning_state: Gets the status of the VolumeQuotaRule at the time the operation was - called. Known values are: "Accepted", "Creating", "Patching", "Updating", "Deleting", "Moving", - "Failed", and "Succeeded". + called. Known values are: "Succeeded", "Failed", "Canceled", "Accepted", "Creating", + "Patching", "Updating", "Deleting", and "Moving". :vartype provisioning_state: str or ~azure.mgmt.netapp.models.NetAppProvisioningState :ivar quota_size_in_ki_bs: Size of quota. :vartype quota_size_in_ki_bs: int @@ -12061,8 +9380,8 @@ class VolumeQuotaRulesProperties(_Model): # pylint: disable=docstring-keyword-s name="provisioningState", visibility=["read"] ) """Gets the status of the VolumeQuotaRule at the time the operation was called. Known values are: - \"Accepted\", \"Creating\", \"Patching\", \"Updating\", \"Deleting\", \"Moving\", \"Failed\", - and \"Succeeded\".""" + \"Succeeded\", \"Failed\", \"Canceled\", \"Accepted\", \"Creating\", \"Patching\", + \"Updating\", \"Deleting\", and \"Moving\".""" quota_size_in_ki_bs: Optional[int] = rest_field( name="quotaSizeInKiBs", visibility=["read", "create", "update", "delete", "query"] ) 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 dc8916780c55..4edfa8469e9a 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,15 +25,6 @@ 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 @@ -63,15 +54,6 @@ "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 dc4930f26b6d..68ae8c5ea2a3 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2769,21 +2769,23 @@ def build_caches_reset_smb_password_request( return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_accounts_get_request( - resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}" + _url = ( + "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/quotaLimits/{quotaLimitName}" + ) 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"), + "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 @@ -2797,53 +2799,20 @@ def build_elastic_accounts_get_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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 {}) - - 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-06-15-preview")) - accept = _headers.pop("Accept", "application/json") - - # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{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_elastic_accounts_update_request( - resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any +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 {}) - 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/quotaLimits" 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"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -2852,51 +2821,25 @@ def build_elastic_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) - - -def build_elastic_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-06-15-preview")) - # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{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) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_accounts_list_by_resource_group_request( # pylint: disable=name-too-long - resource_group_name: str, subscription_id: str, **kwargs: Any +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = ( - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts" - ) + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/regionInfos/default" path_format_arguments = { "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -2910,19 +2853,20 @@ def build_elastic_accounts_list_by_resource_group_request( # pylint: disable=na return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_accounts_list_by_subscription_request( # pylint: disable=name-too-long - subscription_id: str, **kwargs: Any +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/elasticAccounts" + _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 @@ -2936,22 +2880,21 @@ def build_elastic_accounts_list_by_subscription_request( # pylint: disable=name return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_capacity_pools_get_request( - resource_group_name: str, account_name: str, pool_name: str, subscription_id: str, **kwargs: Any +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}" + _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"), - "poolName": _SERIALIZER.url("pool_name", pool_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -2965,23 +2908,22 @@ def build_elastic_capacity_pools_get_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}" + _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"), - "poolName": _SERIALIZER.url("pool_name", pool_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -2997,23 +2939,22 @@ def build_elastic_capacity_pools_create_or_update_request( # pylint: disable=na return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}" + _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"), - "poolName": _SERIALIZER.url("pool_name", pool_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3029,19 +2970,18 @@ def build_elastic_capacity_pools_update_request( # pylint: disable=name-too-lon return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}" + _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"), - "poolName": _SERIALIZER.url("pool_name", pool_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3052,21 +2992,20 @@ def build_elastic_capacity_pools_delete_request( # pylint: disable=name-too-lon return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs) -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: +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools" + _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"), - "accountName": _SERIALIZER.url("account_name", account_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3080,23 +3019,19 @@ def build_elastic_capacity_pools_list_by_elastic_account_request( # pylint: dis return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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 +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 {}) - 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/changeZone" + _url = "/subscriptions/{subscriptionId}/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"), - "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 @@ -3105,30 +3040,23 @@ def build_elastic_capacity_pools_change_zone_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="POST", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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 +def build_accounts_renew_credentials_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-06-15-preview")) - accept = _headers.pop("Accept", "application/json") - + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/checkVolumeFilePathAvailability" + _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"), - "poolName": _SERIALIZER.url("pool_name", pool_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3136,31 +3064,23 @@ def build_elastic_capacity_pools_check_volume_file_path_availability_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="POST", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="POST", url=_url, params=_params, **kwargs) -def build_elastic_volumes_get_request( - resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any +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 {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-06-15-preview")) - accept = _headers.pop("Accept", "application/json") - + 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-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}" + _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"), - "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 @@ -3169,29 +3089,27 @@ def build_elastic_volumes_get_request( _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) -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 +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 {}) - 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}" + _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"), - "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 @@ -3200,31 +3118,25 @@ def build_elastic_volumes_create_or_update_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="PUT", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_volumes_update_request( - resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any +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-06-15-preview")) - accept = _headers.pop("Accept", "application/json") - + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}" + _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"), - "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 @@ -3235,25 +3147,22 @@ def build_elastic_volumes_update_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="PATCH", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_volumes_delete_request( - resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}" + _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"), - "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 @@ -3261,25 +3170,23 @@ def build_elastic_volumes_delete_request( # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs) + return HttpRequest(method="POST", url=_url, params=_params, **kwargs) -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 +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 {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-06-15-preview")) - accept = _headers.pop("Accept", "application/json") - + 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-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes" + _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"), - "poolName": _SERIALIZER.url("pool_name", pool_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3288,29 +3195,28 @@ def build_elastic_volumes_list_by_elastic_pool_request( # pylint: disable=name- _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_volumes_revert_request( - resource_group_name: str, account_name: str, pool_name: str, volume_name: str, subscription_id: str, **kwargs: Any +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 {}) - 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/revert" + _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"), - "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3319,37 +3225,28 @@ def build_elastic_volumes_revert_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="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_snapshots_get_request( - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - snapshot_name: str, - subscription_id: str, - **kwargs: Any +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 {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-06-15-preview")) + 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-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/elasticSnapshots/{snapshotName}" + _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"), - "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"), - "snapshotName": _SERIALIZER.url("snapshot_name", snapshot_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3358,36 +3255,30 @@ def build_elastic_snapshots_get_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="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -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, - snapshot_name: str, - subscription_id: str, - **kwargs: Any +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/elasticSnapshots/{snapshotName}" + _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"), - "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"), - "snapshotName": _SERIALIZER.url("snapshot_name", snapshot_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3400,30 +3291,22 @@ def build_elastic_snapshots_create_or_update_request( # pylint: disable=name-to _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="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_elastic_snapshots_delete_request( - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - snapshot_name: str, - subscription_id: str, - **kwargs: Any +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/elasticSnapshots/{snapshotName}" + _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"), - "volumeName": _SERIALIZER.url("volume_name", volume_name, "str"), - "snapshotName": _SERIALIZER.url("snapshot_name", snapshot_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3434,23 +3317,21 @@ def build_elastic_snapshots_delete_request( return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticCapacityPools/{poolName}/elasticVolumes/{volumeName}/elasticSnapshots" + _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"), - "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 @@ -3464,22 +3345,27 @@ def build_elastic_snapshots_list_by_elastic_volume_request( # pylint: disable=n return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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-06-15-preview")) - accept = _headers.pop("Accept", "application/json") +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-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}" + _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"), - "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_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 @@ -3488,28 +3374,28 @@ def build_elastic_snapshot_policies_get_request( # pylint: disable=name-too-lon _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers - _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) - accept = _headers.pop("Accept", "application/json") - + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}" + _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"), - "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_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 @@ -3520,28 +3406,34 @@ def build_elastic_snapshot_policies_create_or_update_request( # pylint: disable # 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="POST", url=_url, params=_params, headers=_headers, **kwargs) -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 +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 {}) - 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}" + _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"), - "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_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 @@ -3550,26 +3442,36 @@ def build_elastic_snapshot_policies_update_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="PATCH", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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 +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 {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-06-15-preview")) + 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-08-01")) + accept = _headers.pop("Accept", "application/json") + # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}" + _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"), - "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_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 @@ -3577,24 +3479,39 @@ def build_elastic_snapshot_policies_delete_request( # pylint: disable=name-too- # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs) + # 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_snapshot_policies_list_by_elastic_account_request( # pylint: disable=name-too-long - resource_group_name: str, account_name: str, subscription_id: str, **kwargs: Any + +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 {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-06-15-preview")) + 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-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies" + _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 @@ -3603,27 +3520,34 @@ def build_elastic_snapshot_policies_list_by_elastic_account_request( # pylint: _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_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 +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: - _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-06-15-preview")) - accept = _headers.pop("Accept", "application/json") - + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticSnapshotPolicies/{snapshotPolicyName}/elasticvolumes" + _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"), - "snapshotPolicyName": _SERIALIZER.url("snapshot_policy_name", snapshot_policy_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 @@ -3631,28 +3555,26 @@ def build_elastic_snapshot_policies_list_elastic_volumes_request( # pylint: dis # 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_elastic_backup_vaults_get_request( - resource_group_name: str, account_name: str, backup_vault_name: str, subscription_id: str, **kwargs: Any +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}" + _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"), - "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_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 @@ -3666,23 +3588,30 @@ def build_elastic_backup_vaults_get_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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 +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 {}) - 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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}" + _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"), - "backupVaultName": _SERIALIZER.url("backup_vault_name", backup_vault_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 @@ -3691,30 +3620,26 @@ def build_elastic_backup_vaults_create_or_update_request( # pylint: disable=nam _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="POST", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkNameAvailability" 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"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3727,22 +3652,24 @@ def build_elastic_backup_vaults_update_request( # pylint: disable=name-too-long _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="POST", url=_url, params=_params, headers=_headers, **kwargs) -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 +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 {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-06-15-preview")) + 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-08-01")) + accept = _headers.pop("Accept", "application/json") + # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkFilePathAvailability" 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"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3750,24 +3677,29 @@ def build_elastic_backup_vaults_delete_request( # pylint: disable=name-too-long # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - return HttpRequest(method="DELETE", url=_url, params=_params, **kwargs) + # 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_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 +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 {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-06-15-preview")) + 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-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/checkQuotaAvailability" 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"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3776,27 +3708,27 @@ def build_elastic_backup_vaults_list_by_elastic_account_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="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies/{backupPolicyName}" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/regionInfo" 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"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3810,23 +3742,21 @@ def build_elastic_backup_policies_get_request( # pylint: disable=name-too-long return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies/{backupPolicyName}" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/queryNetworkSiblingSet" 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"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3839,26 +3769,24 @@ def build_elastic_backup_policies_create_or_update_request( # pylint: disable=n _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="POST", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies/{backupPolicyName}" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/updateNetworkSiblingSet" 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"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3871,47 +3799,23 @@ def build_elastic_backup_policies_update_request( # pylint: disable=name-too-lo _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_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-06-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"), - } - - _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) + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupPolicies" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/usages" 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"), + "location": _SERIALIZER.url("location", location, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3925,28 +3829,21 @@ def build_elastic_backup_policies_list_by_elastic_account_request( # pylint: di return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -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 +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-06-15-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-08-01")) accept = _headers.pop("Accept", "application/json") # Construct URL - _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/elasticAccounts/{accountName}/elasticBackupVaults/{backupVaultName}/elasticBackups/{backupName}" + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.NetApp/locations/{location}/usages/{usageType}" 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"), + "location": _SERIALIZER.url("location", location, "str"), + "usageType": _SERIALIZER.url("usage_type", usage_type, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -3960,9712 +3857,36 @@ def build_elastic_backups_get_request( 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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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-06-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: # pylint: disable=docstring-missing-param - """ - .. 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=docstring-missing-param,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", - "2026-06-01", - "2026-06-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", - "2026-06-01", - "2026-06-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, - 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.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: # pylint: disable=docstring-missing-param - """ - .. 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: # pylint: disable=docstring-missing-param - """ - .. 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=docstring-missing-param,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", - "2026-06-01", - "2026-06-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", - "2026-06-01", - "2026-06-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", - "2026-06-01", - "2026-06-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 - ) - - 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_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: - """ - - @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. - - :param resource_group_name: The name of 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: - """ - - @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 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), - } - - 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, - 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_relocation_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_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, - 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_revert_relocation_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_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 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._revert_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 - - @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", - "2026-06-01", - "2026-06-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, - 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_list_quota_report_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_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 - @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", - "2026-06-01", - "2026-06-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: # pylint: disable=docstring-missing-param - """ - .. 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( - 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 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 = { - 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.Snapshot] = kwargs.pop("cls", None) - - _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, - ) - 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.Snapshot, 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, - snapshot_name: str, - body: Union[_models.Snapshot, _types.Snapshot, 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_snapshots_create_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 = self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [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 = {} - 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. - - :param resource_group_name: The name of 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_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. - - :param resource_group_name: The name of 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 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] - :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._create_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_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()) - 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.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 - ) - - 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]: - 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_snapshots_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 = 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, - 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) - - 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 - - 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.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 - ) - - 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_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 - ) - - 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, - pool_name: str, - volume_name: str, - snapshot_name: str, - **kwargs: Any - ) -> LROPoller[None]: - """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 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: - """ - _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, - snapshot_name=snapshot_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 Operations: # pylint: disable=docstring-missing-param + """ + .. 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:`operations` 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, pool_name: str, volume_name: str, **kwargs: Any - ) -> ItemPaged["_models.Snapshot"]: - """List all snapshots associated with the volume. + def list(self, **kwargs: Any) -> ItemPaged["_models.Operation"]: + """List the operations for the provider. - :param resource_group_name: The name of 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] + :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.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) + cls: ClsType[List[_models.Operation]] = kwargs.pop("cls", None) - 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, @@ -13674,268 +3895,86 @@ def _restore_files_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_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, - ) - 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_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 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. + def prepare_request(next_link=None): + if not next_link: - :param resource_group_name: The name of 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. 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: - """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = kwargs.pop("params", {}) or {} + _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) - 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) + 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) - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + 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: - return cls(pipeline_response, None, {}) # type: ignore + 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[None].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[None](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 -class SnapshotPoliciesOperations: # pylint: disable=docstring-missing-param + return ItemPaged(get_next, extract_data) + + +class NetAppResourceQuotaLimitsAccountOperations: # pylint: disable=docstring-missing-param,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:`snapshot_policies` attribute. + :attr:`net_app_resource_quota_limits_account` attribute. """ def __init__(self, *args, **kwargs) -> None: @@ -13946,20 +3985,52 @@ 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-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", + "2026-06-01", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", + ], + ) def get( - self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any - ) -> _models.SnapshotPolicy: - """Get a snapshot Policy. + 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 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 + :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 = { @@ -13973,12 +4044,12 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", None) + cls: ClsType[_models.QuotaItem] = kwargs.pop("cls", None) - _request = build_snapshot_policies_get_request( + _request = build_net_app_resource_quota_limits_account_get_request( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + quota_limit_name=quota_limit_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -14013,127 +4084,172 @@ def get( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.SnapshotPolicy, response.json()) + deserialized = _deserialize(_models.QuotaItem, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized # type: ignore - @overload - def create( - self, - resource_group_name: str, - account_name: str, - snapshot_policy_name: str, - body: _models.SnapshotPolicy, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.SnapshotPolicy: - """Create a snapshot policy. + @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", + "2026-06-01", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-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. :param resource_group_name: The name of 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 - :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: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping - :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy + :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 {} - @overload - def create( - self, - resource_group_name: str, - account_name: str, - snapshot_policy_name: str, - body: _types.SnapshotPolicy, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.SnapshotPolicy: - """Create a snapshot policy. + 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, + 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.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) - :param resource_group_name: The name of 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 - :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: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping - :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy - :raises ~azure.core.exceptions.HttpResponseError: - """ + return pipeline_response - @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 - ) -> _models.SnapshotPolicy: - """Create a snapshot policy. + 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 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 - :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: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping - :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy - :raises ~azure.core.exceptions.HttpResponseError: - """ + +class VolumeGroupsOperations: # pylint: disable=docstring-missing-param + """ + .. 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 create( - self, - resource_group_name: str, - account_name: str, - snapshot_policy_name: str, - body: Union[_models.SnapshotPolicy, _types.SnapshotPolicy, IO[bytes]], - **kwargs: Any - ) -> _models.SnapshotPolicy: - """Create a snapshot policy. + 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 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 + :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 = { @@ -14144,27 +4260,17 @@ def create( } 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[_models.SnapshotPolicy] = 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.VolumeGroupDetails] = kwargs.pop("cls", None) - _request = build_snapshot_policies_create_request( + _request = build_volume_groups_get_request( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_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, ) @@ -14181,7 +4287,7 @@ def create( response = pipeline_response.http_response - if response.status_code not in [200, 201]: + if response.status_code not in [200]: if _stream: try: response.read() # Load the body in memory and close the socket @@ -14197,19 +4303,19 @@ def create( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.SnapshotPolicy, response.json()) + deserialized = _deserialize(_models.VolumeGroupDetails, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized # type: ignore - def _update_initial( + def _create_initial( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: Union[_models.SnapshotPolicyPatch, _types.SnapshotPolicyPatch, IO[bytes]], + volume_group_name: str, + body: Union[_models.VolumeGroupDetails, _types.VolumeGroupDetails, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -14233,10 +4339,10 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_snapshot_policies_update_request( + _request = build_volume_groups_create_request( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + volume_group_name=volume_group_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -14257,7 +4363,7 @@ def _update_initial( response = pipeline_response.http_response - if response.status_code not in [200, 202]: + if response.status_code not in [201]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -14270,9 +4376,8 @@ def _update_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["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() @@ -14282,138 +4387,138 @@ def _update_initial( return deserialized # type: ignore @overload - def begin_update( + def begin_create( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: _models.SnapshotPolicyPatch, + volume_group_name: str, + body: _models.VolumeGroupDetails, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.SnapshotPolicy]: - """Patch a snapshot policy. + ) -> 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 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 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 SnapshotPolicy. The SnapshotPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy] + :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_update( + def begin_create( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: _types.SnapshotPolicyPatch, + volume_group_name: str, + body: _types.VolumeGroupDetails, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.SnapshotPolicy]: - """Patch a snapshot policy. + ) -> 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 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 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 SnapshotPolicy. The SnapshotPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy] + :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_update( + def begin_create( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + volume_group_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.SnapshotPolicy]: - """Patch a snapshot policy. + ) -> 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 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 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 SnapshotPolicy. The SnapshotPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.SnapshotPolicy] + :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_update( + def begin_create( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: Union[_models.SnapshotPolicyPatch, _types.SnapshotPolicyPatch, IO[bytes]], + volume_group_name: str, + body: Union[_models.VolumeGroupDetails, _types.VolumeGroupDetails, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.SnapshotPolicy]: - """Patch a snapshot policy. + ) -> 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 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] + :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.SnapshotPolicy] = kwargs.pop("cls", 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._update_initial( + raw_result = self._create_initial( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + volume_group_name=volume_group_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -14425,10 +4530,14 @@ def begin_update( kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): + response_headers = {} response = pipeline_response.http_response - deserialized = _deserialize(_models.SnapshotPolicy, 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.VolumeGroupDetails, 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 = { @@ -14444,18 +4553,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.SnapshotPolicy].from_continuation_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.SnapshotPolicy]( + 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, snapshot_policy_name: str, **kwargs: Any + self, resource_group_name: str, account_name: str, volume_group_name: str, **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -14470,10 +4579,10 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_snapshot_policies_delete_request( + _request = build_volume_groups_delete_request( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + volume_group_name=volume_group_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -14518,17 +4627,17 @@ def _delete_initial( @distributed_trace def begin_delete( - self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any + self, resource_group_name: str, account_name: str, volume_group_name: str, **kwargs: Any ) -> LROPoller[None]: - """Delete snapshot policy. + """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 snapshot_policy_name: The name of the snapshot policy. Required. - :type snapshot_policy_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: @@ -14544,7 +4653,7 @@ def begin_delete( raw_result = self._delete_initial( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + volume_group_name=volume_group_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -14579,22 +4688,24 @@ 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. + 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 SnapshotPolicy - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.SnapshotPolicy] + :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.SnapshotPolicy]] = kwargs.pop("cls", None) + cls: ClsType[List[_models.VolumeGroup]] = kwargs.pop("cls", None) error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -14607,7 +4718,7 @@ 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_volume_groups_list_by_net_app_account_request( resource_group_name=resource_group_name, account_name=account_name, subscription_id=self._config.subscription_id, @@ -14650,7 +4761,7 @@ 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.VolumeGroup], deserialized.get("value", []), ) if cls: @@ -14678,91 +4789,15 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - @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, - 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.SnapshotPolicyVolumeList] = kwargs.pop("cls", None) - - _request = build_snapshot_policies_list_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) - - _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.SnapshotPolicyVolumeList, response.json()) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - -class BackupPoliciesOperations: # pylint: disable=docstring-missing-param +class BackupsOperations: # pylint: disable=docstring-missing-param """ .. 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. + :attr:`backups` attribute. """ def __init__(self, *args, **kwargs) -> None: @@ -14774,19 +4809,21 @@ def __init__(self, *args, **kwargs) -> None: @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. + 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_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 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 = { @@ -14800,12 +4837,13 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.BackupPolicy] = kwargs.pop("cls", None) + cls: ClsType[_models.Backup] = kwargs.pop("cls", None) - _request = build_backup_policies_get_request( + _request = build_backups_get_request( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_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, @@ -14840,7 +4878,7 @@ def get( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.BackupPolicy, response.json()) + deserialized = _deserialize(_models.Backup, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore @@ -14851,8 +4889,9 @@ def _create_initial( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: Union[_models.BackupPolicy, _types.BackupPolicy, IO[bytes]], + backup_vault_name: str, + backup_name: str, + body: Union[_models.Backup, _types.Backup, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -14876,10 +4915,11 @@ def _create_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_backup_policies_create_request( + _request = build_backups_create_request( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_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, @@ -14900,7 +4940,7 @@ def _create_initial( response = pipeline_response.http_response - if response.status_code not in [200, 201, 202]: + if response.status_code not in [200, 201]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -14919,10 +4959,6 @@ def _create_initial( ) 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: @@ -14935,29 +4971,32 @@ def begin_create( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: _models.BackupPolicy, + backup_vault_name: str, + backup_name: str, + body: _models.Backup, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupPolicy]: - """Create a backup policy for Netapp Account. + ) -> 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_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 + :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 BackupPolicy. The BackupPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] + :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: """ @@ -14966,29 +5005,32 @@ def begin_create( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: _types.BackupPolicy, + backup_vault_name: str, + backup_name: str, + body: _types.Backup, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupPolicy]: - """Create a backup policy for Netapp Account. + ) -> 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_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 + :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 BackupPolicy. The BackupPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] + :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: """ @@ -14997,29 +5039,32 @@ def begin_create( self, resource_group_name: str, account_name: str, - backup_policy_name: str, + backup_vault_name: str, + backup_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupPolicy]: - """Create a backup policy for Netapp Account. + ) -> 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_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 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 BackupPolicy. The BackupPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] + :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: """ @@ -15028,33 +5073,35 @@ def begin_create( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: Union[_models.BackupPolicy, _types.BackupPolicy, IO[bytes]], + backup_vault_name: str, + backup_name: str, + body: Union[_models.Backup, _types.Backup, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.BackupPolicy]: - """Create a backup policy for Netapp Account. + ) -> 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_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 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.BackupPolicy] = kwargs.pop("cls", 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) @@ -15062,7 +5109,8 @@ def begin_create( raw_result = self._create_initial( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_name, + backup_vault_name=backup_vault_name, + backup_name=backup_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -15075,7 +5123,7 @@ def begin_create( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.BackupPolicy, response.json()) + deserialized = _deserialize(_models.Backup, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -15093,22 +5141,23 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.BackupPolicy].from_continuation_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.BackupPolicy]( + 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_policy_name: str, - body: Union[_models.BackupPolicyPatch, _types.BackupPolicyPatch, IO[bytes]], + 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 = { @@ -15123,19 +5172,24 @@ 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" + content_type = content_type or "application/json" if body else None _content = None if isinstance(body, (IOBase, bytes)): _content = body else: - _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + if body is not None: + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + else: + _content = None - _request = build_backup_policies_update_request( + _request = build_backups_update_request( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_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, @@ -15170,9 +5224,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() @@ -15187,29 +5239,32 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: _models.BackupPolicyPatch, + backup_vault_name: str, + backup_name: str, + body: Optional[_models.BackupPatch] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupPolicy]: - """Patch a backup policy for Netapp Account. + ) -> 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_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 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 BackupPolicy. The BackupPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] + :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: """ @@ -15218,29 +5273,32 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: _types.BackupPolicyPatch, + backup_vault_name: str, + backup_name: str, + body: Optional[_types.BackupPatch] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupPolicy]: - """Patch a backup policy for Netapp Account. + ) -> 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_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 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 BackupPolicy. The BackupPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] + :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: """ @@ -15249,29 +5307,32 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: IO[bytes], + backup_vault_name: str, + backup_name: str, + body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupPolicy]: - """Patch a backup policy for Netapp Account. + ) -> 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_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 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 BackupPolicy. The BackupPolicy is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] + :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: """ @@ -15280,33 +5341,37 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: Union[_models.BackupPolicyPatch, _types.BackupPolicyPatch, IO[bytes]], + backup_vault_name: str, + backup_name: str, + body: Optional[Union[_models.BackupPatch, _types.BackupPatch, IO[bytes]]] = None, **kwargs: Any - ) -> LROPoller[_models.BackupPolicy]: - """Patch a backup policy for Netapp Account. + ) -> 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_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 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)) - cls: ClsType[_models.BackupPolicy] = kwargs.pop("cls", 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) @@ -15314,7 +5379,8 @@ def begin_update( raw_result = self._update_initial( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_name, + backup_vault_name=backup_vault_name, + backup_name=backup_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -15327,7 +5393,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.Backup, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -15345,18 +5411,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.BackupPolicy].from_continuation_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.BackupPolicy]( + 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_policy_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, @@ -15371,10 +5437,11 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_backup_policies_delete_request( + _request = build_backups_delete_request( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_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, @@ -15393,7 +5460,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): @@ -15419,17 +5486,19 @@ def _delete_initial( @distributed_trace def begin_delete( - self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any + self, resource_group_name: str, account_name: str, backup_vault_name: str, backup_name: str, **kwargs: Any ) -> LROPoller[None]: - """Delete backup policy. + """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_policy_name: Backup policy Name which uniquely identify backup policy. Required. - :type backup_policy_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: @@ -15445,7 +5514,8 @@ def begin_delete( raw_result = self._delete_initial( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_name, + backup_vault_name=backup_vault_name, + backup_name=backup_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -15480,22 +5550,35 @@ 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.BackupPolicy"]: - """List backup policies for Netapp Account. + 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 - :return: An iterator like instance of BackupPolicy - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.BackupPolicy] + :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.BackupPolicy]] = kwargs.pop("cls", None) + cls: ClsType[List[_models.Backup]] = kwargs.pop("cls", None) error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -15508,10 +5591,12 @@ 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_backup_policies_list_request( + _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, @@ -15551,7 +5636,7 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() list_of_elem = _deserialize( - List[_models.BackupPolicy], + List[_models.Backup], deserialized.get("value", []), ) if cls: @@ -15579,35 +5664,11 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - -class VolumeQuotaRulesOperations: # pylint: disable=docstring-missing-param - """ - .. 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 get( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - volume_quota_rule_name: str, - **kwargs: Any - ) -> _models.VolumeQuotaRule: - """Get details of the specified quota rule. + 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. @@ -15618,10 +5679,8 @@ def get( :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 + :return: BackupStatus. The BackupStatus is compatible with MutableMapping + :rtype: ~azure.mgmt.netapp.models.BackupStatus :raises ~azure.core.exceptions.HttpResponseError: """ error_map: MutableMapping = { @@ -15635,14 +5694,13 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.VolumeQuotaRule] = kwargs.pop("cls", None) + cls: ClsType[_models.BackupStatus] = kwargs.pop("cls", None) - _request = build_volume_quota_rules_get_request( + _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, - volume_quota_rule_name=volume_quota_rule_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -15677,23 +5735,32 @@ def get( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.VolumeQuotaRule, response.json()) + deserialized = _deserialize(_models.BackupStatus, 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, - volume_quota_rule_name: str, - body: Union[_models.VolumeQuotaRule, _types.VolumeQuotaRule, IO[bytes]], - **kwargs: Any - ) -> Iterator[bytes]: + @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, @@ -15702,29 +5769,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 + cls: ClsType[_models.RestoreStatus] = kwargs.pop("cls", None) - _request = build_volume_quota_rules_create_request( + _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, - 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, ) @@ -15734,18 +5790,19 @@ def _create_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, 201]: - 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, @@ -15753,141 +5810,39 @@ def _create_initial( ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - response_headers = {} - 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")) - - 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.RestoreStatus, response.json()) if cls: - return cls(pipeline_response, deserialized, response_headers) # type: ignore + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized # type: ignore - @overload - def begin_create( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - volume_quota_rule_name: str, - body: _models.VolumeQuotaRule, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> 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. - :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.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 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_create( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - volume_quota_rule_name: str, - body: _types.VolumeQuotaRule, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> 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. - :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.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 VolumeQuotaRule. The VolumeQuotaRule is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule] - :raises ~azure.core.exceptions.HttpResponseError: - """ +class VolumesOperations: # pylint: disable=docstring-missing-param,too-many-public-methods + """ + .. warning:: + **DO NOT** instantiate this class directly. - @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[_models.VolumeQuotaRule]: - """Create the specified quota rule within the given volume. + Instead, you should access the following operations through + :class:`~azure.mgmt.netapp.NetAppManagementClient`'s + :attr:`volumes` 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 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: - """ + 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_create( - 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]], - **kwargs: Any - ) -> LROPoller[_models.VolumeQuotaRule]: - """Create the specified quota rule within the given volume. + 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. @@ -15898,80 +5853,76 @@ def begin_create( :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] + :return: Volume. The Volume is compatible with MutableMapping + :rtype: ~azure.mgmt.netapp.models.Volume :raises ~azure.core.exceptions.HttpResponseError: """ - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + 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 {} - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", 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._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, - headers=_headers, - params=_params, - **kwargs + 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, ) - 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.VolumeQuotaRule, 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.Volume, 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.VolumeQuotaRule].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 deserialized # type: ignore - def _update_initial( + 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.VolumeQuotaRulePatch, _types.VolumeQuotaRulePatch, IO[bytes]], + body: Union[_models.Volume, _types.Volume, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -15995,12 +5946,11 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_volume_quota_rules_update_request( + _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, - volume_quota_rule_name=volume_quota_rule_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -16021,7 +5971,7 @@ def _update_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): @@ -16034,6 +5984,12 @@ def _update_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")) @@ -16046,19 +6002,18 @@ def _update_initial( return deserialized # type: ignore @overload - def begin_update( + def begin_create_or_update( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - volume_quota_rule_name: str, - body: _models.VolumeQuotaRulePatch, + body: _models.Volume, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.VolumeQuotaRule]: - """Patch a quota rule. + ) -> 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. @@ -16069,33 +6024,30 @@ def begin_update( :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 + :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 VolumeQuotaRule. The VolumeQuotaRule is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule] + :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( + def begin_create_or_update( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - volume_quota_rule_name: str, - body: _types.VolumeQuotaRulePatch, + body: _types.Volume, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.VolumeQuotaRule]: - """Patch a quota rule. + ) -> 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. @@ -16106,33 +6058,30 @@ def begin_update( :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 + :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 VolumeQuotaRule. The VolumeQuotaRule is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule] + :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( + def begin_create_or_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. + ) -> 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. @@ -16143,31 +6092,28 @@ def begin_update( :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. + :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 VolumeQuotaRule. The VolumeQuotaRule is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.VolumeQuotaRule] + :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( + def begin_create_or_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]], + body: Union[_models.Volume, _types.Volume, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.VolumeQuotaRule]: - """Patch a quota rule. + ) -> 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. @@ -16178,32 +6124,28 @@ def begin_update( :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 - 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] + :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.VolumeQuotaRule] = kwargs.pop("cls", 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( + 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, - volume_quota_rule_name=volume_quota_rule_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -16216,7 +6158,7 @@ def begin_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.VolumeQuotaRule, response.json()) + deserialized = _deserialize(_models.Volume, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -16234,23 +6176,23 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.VolumeQuotaRule].from_continuation_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.VolumeQuotaRule]( + return LROPoller[_models.Volume]( self._client, raw_result, get_long_running_output, polling_method # type: ignore ) - def _delete_initial( + 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.VolumePatch, _types.VolumePatch, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -16261,19 +6203,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_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, + content=_content, headers=_headers, params=_params, ) @@ -16290,7 +6241,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): @@ -16314,17 +6265,119 @@ def _delete_initial( 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_delete( + 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.VolumePatch, _types.VolumePatch, IO[bytes]], **kwargs: Any - ) -> LROPoller[None]: - """Delete quota rule. + ) -> LROPoller[_models.Volume]: + """Patch the specified volume. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -16335,26 +6388,31 @@ def begin_delete( :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: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :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 = 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.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._delete_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, headers=_headers, params=_params, @@ -16363,9 +6421,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.Volume, 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), @@ -16380,200 +6441,26 @@ 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.Volume].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. - - :param resource_group_name: The name of 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 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, - 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_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) - - 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.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) - - 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 RansomwareReportsOperations: # pylint: disable=docstring-missing-param - """ - .. 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. - """ - - 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 LROPoller[_models.Volume]( + self._client, raw_result, get_long_running_output, polling_method # 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", - "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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def get( + def _delete_initial( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - ransomware_report_name: str, + *, + force_delete: Optional[bool] = None, **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. - - :param resource_group_name: The name of 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 - :return: RansomwareReport. The RansomwareReport is compatible with MutableMapping - :rtype: ~azure.mgmt.netapp.models.RansomwareReport - :raises ~azure.core.exceptions.HttpResponseError: - """ + ) -> Iterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -16585,15 +6472,15 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.RansomwareReport] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_ransomware_reports_get_request( + _request = build_volumes_delete_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, + force_delete=force_delete, api_version=self._config.api_version, headers=_headers, params=_params, @@ -16604,19 +6491,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 [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, @@ -16624,54 +6510,30 @@ 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.RansomwareReport, 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 @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - 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". + 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. @@ -16682,14 +6544,81 @@ def list( :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] + :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[List[_models.RansomwareReport]] = 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._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, @@ -16702,11 +6631,10 @@ def list( def prepare_request(next_link=None): if not next_link: - _request = build_ransomware_reports_list_request( + _request = build_volumes_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, @@ -16747,7 +6675,7 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() list_of_elem = _deserialize( - List[_models.RansomwareReport], + List[_models.Volume], deserialized.get("value", []), ) if cls: @@ -16773,45 +6701,149 @@ def get_next(next_link=None): return pipeline_response - return ItemPaged(get_next, extract_data) + 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 + ) - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def _clear_suspects_initial( + def _revert_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]], + body: Union[_models.VolumeRevert, _types.VolumeRevert, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -16835,12 +6867,11 @@ 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_volumes_revert_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, @@ -16861,7 +6892,7 @@ def _clear_suspects_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): @@ -16874,8 +6905,9 @@ 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 == 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() @@ -16885,23 +6917,18 @@ def _clear_suspects_initial( return deserialized # type: ignore @overload - def begin_clear_suspects( + def begin_revert( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - ransomware_report_name: str, - body: _models.RansomwareSuspectsClearRequest, + body: _models.VolumeRevert, *, 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",. + """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. @@ -16912,10 +6939,8 @@ def begin_clear_suspects( :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 + :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 @@ -16925,23 +6950,18 @@ def begin_clear_suspects( """ @overload - def begin_clear_suspects( + def begin_revert( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - ransomware_report_name: str, - body: _types.RansomwareSuspectsClearRequest, + body: _types.VolumeRevert, *, 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",. + """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. @@ -16952,10 +6972,8 @@ def begin_clear_suspects( :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 + :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 @@ -16965,23 +6983,18 @@ def begin_clear_suspects( """ @overload - def begin_clear_suspects( + def begin_revert( 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",. + """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. @@ -16992,9 +7005,7 @@ def begin_clear_suspects( :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. + :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". @@ -17005,50 +7016,150 @@ def begin_clear_suspects( """ @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", - "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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def begin_clear_suspects( + def begin_revert( 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]], + body: Union[_models.VolumeRevert, _types.VolumeRevert, IO[bytes]], **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",. + """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. @@ -17059,33 +7170,23 @@ def begin_clear_suspects( :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 = 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._reset_cifs_password_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, @@ -17119,41 +7220,9 @@ 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 - -class BackupVaultsOperations: # pylint: disable=docstring-missing-param - """ - .. 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: - """ + 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, @@ -17165,12 +7234,13 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.BackupVault] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_backup_vaults_get_request( + _request = build_volumes_split_clone_from_parent_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, api_version=self._config.api_version, headers=_headers, @@ -17182,19 +7252,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, @@ -17202,22 +7271,96 @@ 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.BackupVault, 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_or_update_initial( + @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, - backup_vault_name: str, - body: Union[_models.BackupVault, _types.BackupVault, IO[bytes]], + pool_name: str, + volume_name: str, + body: Optional[Union[_models.BreakFileLocksRequest, _types.BreakFileLocksRequest, IO[bytes]]] = None, **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -17232,19 +7375,24 @@ def _create_or_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" + content_type = content_type or "application/json" if body else None _content = None if isinstance(body, (IOBase, bytes)): _content = body else: - _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + if body is not None: + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + else: + _content = None - _request = build_backup_vaults_create_or_update_request( + _request = build_volumes_break_file_locks_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, content_type=content_type, api_version=self._config.api_version, @@ -17265,7 +7413,7 @@ def _create_or_update_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): @@ -17278,10 +7426,8 @@ def _create_or_update_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") - ) + 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() @@ -17292,138 +7438,151 @@ def _create_or_update_initial( return deserialized # type: ignore @overload - def begin_create_or_update( + def begin_break_file_locks( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: _models.BackupVault, + pool_name: str, + volume_name: str, + body: Optional[_models.BreakFileLocksRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupVault]: - """Create or update the specified Backup Vault in the NetApp account. + ) -> 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 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 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 BackupVault. The BackupVault is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def begin_break_file_locks( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: _types.BackupVault, + pool_name: str, + volume_name: str, + body: Optional[_types.BreakFileLocksRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupVault]: - """Create or update the specified Backup Vault in the NetApp account. + ) -> 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 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 + :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 BackupVault. The BackupVault is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def begin_break_file_locks( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: IO[bytes], + pool_name: str, + volume_name: str, + body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupVault]: - """Create or update the specified Backup Vault in the NetApp account. + ) -> 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 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 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 BackupVault. The BackupVault is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def begin_create_or_update( + def begin_break_file_locks( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: Union[_models.BackupVault, _types.BackupVault, IO[bytes]], + pool_name: str, + volume_name: str, + body: Optional[Union[_models.BreakFileLocksRequest, _types.BreakFileLocksRequest, IO[bytes]]] = None, **kwargs: Any - ) -> LROPoller[_models.BackupVault]: - """Create or update the specified Backup Vault in the NetApp account. + ) -> 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 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 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)) - cls: ClsType[_models.BackupVault] = kwargs.pop("cls", 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._create_or_update_initial( + raw_result = self._break_file_locks_initial( resource_group_name=resource_group_name, account_name=account_name, - backup_vault_name=backup_vault_name, + pool_name=pool_name, + volume_name=volume_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -17434,12 +7593,9 @@ def begin_create_or_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.BackupVault, 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), @@ -17454,22 +7610,55 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.BackupVault].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.BackupVault]( - 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 _update_initial( + @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", + "2026-06-01", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", + ], + ) + def _list_get_group_id_list_for_ldap_user_initial( # pylint: disable=name-too-long self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: Union[_models.BackupVaultPatch, _types.BackupVaultPatch, IO[bytes]], + pool_name: str, + volume_name: str, + body: Union[_models.GetGroupIdListForLDAPUserRequest, _types.GetGroupIdListForLDAPUserRequest, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -17493,10 +7682,11 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_backup_vaults_update_request( + _request = build_volumes_list_get_group_id_list_for_ldap_user_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, content_type=content_type, api_version=self._config.api_version, @@ -17531,6 +7721,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")) @@ -17542,138 +7735,189 @@ def _update_initial( return deserialized # type: ignore @overload - def begin_update( + def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: _models.BackupVaultPatch, + pool_name: str, + volume_name: str, + body: _models.GetGroupIdListForLDAPUserRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupVault]: - """Patch the specified NetApp Backup Vault. + ) -> 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 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 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 BackupVault. The BackupVault is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault] + :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_update( + def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: _types.BackupVaultPatch, + pool_name: str, + volume_name: str, + body: _types.GetGroupIdListForLDAPUserRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupVault]: - """Patch the specified NetApp Backup Vault. + ) -> 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 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 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 BackupVault. The BackupVault is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault] + :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_update( + def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long self, resource_group_name: str, account_name: str, - backup_vault_name: str, + pool_name: str, + volume_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.BackupVault]: - """Patch the specified NetApp Backup Vault. + ) -> 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 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 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 BackupVault. The BackupVault is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupVault] + :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 - def begin_update( + @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", + "2026-06-01", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", + ], + ) + def begin_list_get_group_id_list_for_ldap_user( # pylint: disable=name-too-long self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: Union[_models.BackupVaultPatch, _types.BackupVaultPatch, IO[bytes]], - **kwargs: Any - ) -> LROPoller[_models.BackupVault]: - """Patch the specified NetApp Backup Vault. + 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 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 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.BackupVault] = kwargs.pop("cls", 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._update_initial( + raw_result = self._list_get_group_id_list_for_ldap_user_initial( resource_group_name=resource_group_name, account_name=account_name, - backup_vault_name=backup_vault_name, + pool_name=pool_name, + volume_name=volume_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -17686,7 +7930,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.GetGroupIdListForLDAPUserResponse, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -17704,18 +7948,24 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.BackupVault].from_continuation_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.BackupVault]( + return LROPoller[_models.GetGroupIdListForLDAPUserResponse]( 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, **kwargs: Any + 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, @@ -17725,17 +7975,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_backup_vaults_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_break_replication_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, + content_type=content_type, api_version=self._config.api_version, + content=_content, headers=_headers, params=_params, ) @@ -17752,7 +8017,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]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -17776,228 +8041,116 @@ def _delete_initial( return deserialized # type: ignore - @distributed_trace - def begin_delete( - self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any + @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]: - """Delete the specified Backup Vault. + """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 backup_vault_name: The name of the Backup Vault. Required. - :type backup_vault_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: """ - _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, - 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.BackupVault"]: - """List and describe all Backup Vaults in the NetApp account. + @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 - :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, - 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_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) - - 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.BackupVault], - 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 BucketsOperations: # pylint: disable=docstring-missing-param - """ - .. warning:: - **DO NOT** instantiate this class directly. + :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: + """ - Instead, you should access the following operations through - :class:`~azure.mgmt.netapp.NetAppManagementClient`'s - :attr:`buckets` attribute. - """ + @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. - 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 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 - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def get( + def begin_break_replication( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, + body: Optional[Union[_models.BreakReplicationRequest, _types.BreakReplicationRequest, IO[bytes]]] = None, **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. + ) -> 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. @@ -18008,109 +8161,71 @@ def get( :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 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: """ - 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.Bucket] = 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[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 - _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) - - _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.Bucket, 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 - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def _create_or_update_initial( + def _reestablish_replication_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]], + body: Union[_models.ReestablishReplicationRequest, _types.ReestablishReplicationRequest, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -18134,12 +8249,11 @@ 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_volumes_reestablish_replication_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, @@ -18160,7 +8274,7 @@ def _create_or_update_initial( response = pipeline_response.http_response - if response.status_code not in [200, 201]: + if response.status_code not in [202]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -18173,11 +8287,8 @@ def _create_or_update_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() @@ -18187,20 +8298,19 @@ def _create_or_update_initial( return deserialized # type: ignore @overload - def begin_create_or_update( + def begin_reestablish_replication( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: _models.Bucket, + body: _models.ReestablishReplicationRequest, *, 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[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. @@ -18209,37 +8319,32 @@ def begin_create_or_update( :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 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 Bucket. The Bucket is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def begin_reestablish_replication( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: _types.Bucket, + body: _types.ReestablishReplicationRequest, *, 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[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. @@ -18250,35 +8355,30 @@ def begin_create_or_update( :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 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 Bucket. The Bucket is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def begin_reestablish_replication( 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. + ) -> 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. @@ -18289,62 +8389,28 @@ def begin_create_or_update( :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 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 Bucket. The Bucket is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :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", - "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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def begin_create_or_update( + def begin_reestablish_replication( 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]], + body: Union[_models.ReestablishReplicationRequest, _types.ReestablishReplicationRequest, 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[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. @@ -18355,31 +8421,28 @@ def begin_create_or_update( :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 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[_models.Bucket] = 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_or_update_initial( + raw_result = self._reestablish_replication_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, @@ -18390,12 +8453,9 @@ def begin_create_or_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.Bucket, 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), @@ -18410,55 +8470,33 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.Bucket].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.Bucket]( - 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 - @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", - "2026-06-01", - "2026-06-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]: + @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, @@ -18467,29 +8505,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.ReplicationStatus] = kwargs.pop("cls", None) - _request = build_buckets_update_request( + _request = build_volumes_replication_status_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, ) @@ -18499,18 +8526,19 @@ 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, @@ -18518,35 +8546,62 @@ def _update_initial( ) 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 _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, response_headers) # type: ignore + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized # type: ignore @overload - def begin_update( + 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, - bucket_name: str, - body: _models.BucketPatch, + body: Optional[_types.ListReplicationsRequest] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.Bucket]: - """Updates the details of a volume bucket. + ) -> 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. @@ -18557,34 +8612,29 @@ def begin_update( :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 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 instance of LROPoller that returns Bucket. The Bucket is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket] + :return: An iterator like instance of Replication + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_update( + def list_replications( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: _types.BucketPatch, + body: Optional[IO[bytes]] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.Bucket]: - """Updates the details of a volume bucket. + ) -> 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. @@ -18595,34 +8645,61 @@ def begin_update( :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. + :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 Bucket. The Bucket is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Bucket] + :return: An iterator like instance of Replication + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.Replication] :raises ~azure.core.exceptions.HttpResponseError: """ - @overload - def begin_update( + @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", + "2026-06-01", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", + ], + ) + def list_replications( 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", + body: Optional[Union[_models.ListReplicationsRequest, _types.ListReplicationsRequest, IO[bytes]]] = None, **kwargs: Any - ) -> LROPoller[_models.Bucket]: - """Updates the details of a volume bucket. + ) -> 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. @@ -18633,61 +8710,185 @@ def begin_update( :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] + :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 - @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", - "2026-06-01", - "2026-06-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. + 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. @@ -18698,34 +8899,23 @@ def begin_update( :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] + :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.Bucket] = 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._resync_replication_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, @@ -18734,12 +8924,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.Bucket, 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), @@ -18754,51 +8941,16 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.Bucket].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.Bucket]( - 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 - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def _delete_initial( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - bucket_name: str, - **kwargs: Any + 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, @@ -18813,12 +8965,11 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_buckets_delete_request( + _request = build_volumes_delete_replication_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, @@ -18837,7 +8988,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]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -18851,9 +9002,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")) @@ -18865,43 +9013,11 @@ 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", - "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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def begin_delete( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - volume_name: str, - bucket_name: str, - **kwargs: Any + def begin_delete_replication( + self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any ) -> LROPoller[None]: - """Delete a volume's bucket. + """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. @@ -18912,8 +9028,6 @@ def begin_delete( :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: @@ -18926,12 +9040,11 @@ def begin_delete( 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._delete_replication_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, @@ -18944,79 +9057,36 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- 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", - "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", - "2026-06-01", - "2026-06-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) + 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, @@ -19025,97 +9095,81 @@ def list( } error_map.update(kwargs.pop("error_map", {}) or {}) - def prepare_request(next_link=None): - if not next_link: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} - _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: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - 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 = 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 - return _request + _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) - 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) + _decompress = kwargs.pop("decompress", True) + _stream = True + 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, 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, ) - response = pipeline_response.http_response + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - 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) + 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")) - return pipeline_response + deserialized = response.iter_bytes() if _decompress else response.iter_raw() - return ItemPaged(get_next, extract_data) + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore @overload - def generate_credentials( + def begin_authorize_replication( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: _models.BucketCredentialsExpiry, + body: _models.AuthorizeRequest, *, 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[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. @@ -19126,35 +9180,29 @@ def generate_credentials( :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 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: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with - MutableMapping - :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def generate_credentials( + def begin_authorize_replication( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: _types.BucketCredentialsExpiry, + body: _types.AuthorizeRequest, *, 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[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. @@ -19165,35 +9213,29 @@ def generate_credentials( :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 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: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with - MutableMapping - :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def generate_credentials( + def begin_authorize_replication( 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 - ) -> _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[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. @@ -19204,62 +9246,27 @@ def generate_credentials( :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 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: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with - MutableMapping - :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :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", - "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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def generate_credentials( + def begin_authorize_replication( 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]], + body: Union[_models.AuthorizeRequest, _types.AuthorizeRequest, 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[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. @@ -19270,17 +9277,66 @@ def generate_credentials( :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 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, @@ -19289,29 +9345,18 @@ def generate_credentials( } 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[_models.BucketGenerateCredentials] = 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_buckets_generate_credentials_request( + _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, - 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, ) @@ -19321,19 +9366,18 @@ def generate_credentials( _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, @@ -19341,52 +9385,92 @@ def generate_credentials( ) 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.BucketGenerateCredentials, 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 - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def _generate_akv_credentials_initial( + @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, - bucket_name: str, - body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]], + body: Union[ + _models.PeerClusterForVolumeMigrationRequest, _types.PeerClusterForVolumeMigrationRequest, IO[bytes] + ], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -19410,12 +9494,11 @@ 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_volumes_peer_external_cluster_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, @@ -19436,7 +9519,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): @@ -19449,11 +9532,12 @@ 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["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() @@ -19463,20 +9547,18 @@ def _generate_akv_credentials_initial( return deserialized # type: ignore @overload - def begin_generate_akv_credentials( + def begin_peer_external_cluster( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: _models.BucketCredentialsExpiry, + body: _models.PeerClusterForVolumeMigrationRequest, *, 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.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. @@ -19487,33 +9569,30 @@ def begin_generate_akv_credentials( :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 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 None - :rtype: ~azure.core.polling.LROPoller[None] + :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_generate_akv_credentials( + def begin_peer_external_cluster( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - bucket_name: str, - body: _types.BucketCredentialsExpiry, + body: _types.PeerClusterForVolumeMigrationRequest, *, 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.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. @@ -19524,33 +9603,30 @@ def begin_generate_akv_credentials( :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 + :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 None - :rtype: ~azure.core.polling.LROPoller[None] + :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_generate_akv_credentials( + def begin_peer_external_cluster( 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]: - """Generate the access key and secret key used for accessing the specified volume bucket and store - in Azure Key Vault. + ) -> 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. @@ -19561,59 +9637,30 @@ def begin_generate_akv_credentials( :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 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 None - :rtype: ~azure.core.polling.LROPoller[None] + :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 - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def begin_generate_akv_credentials( + def begin_peer_external_cluster( 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]], + body: Union[ + _models.PeerClusterForVolumeMigrationRequest, _types.PeerClusterForVolumeMigrationRequest, 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.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. @@ -19624,31 +9671,29 @@ def begin_generate_akv_credentials( :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 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[None] = kwargs.pop("cls", 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._generate_akv_credentials_initial( + 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, - bucket_name=bucket_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -19659,9 +9704,19 @@ 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_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, 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), @@ -19676,49 +9731,163 @@ 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.ClusterPeerCommandResponse].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.ClusterPeerCommandResponse]( + 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", - "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", - "2026-06-01", - "2026-06-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 _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, @@ -19733,12 +9902,11 @@ def _refresh_certificate_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_buckets_refresh_certificate_request( + _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, - bucket_name=bucket_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -19770,9 +9938,6 @@ 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")) @@ -19784,44 +9949,11 @@ def _refresh_certificate_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", - "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", - "2026-06-01", - "2026-06-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_finalize_external_replication( + self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, **kwargs: Any ) -> LROPoller[None]: - """This operation will fetch the certificate from Azure Key Vault and install it on the bucket - server. + """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. @@ -19832,8 +9964,6 @@ def begin_refresh_certificate( :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: @@ -19846,12 +9976,11 @@ 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._finalize_external_replication_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, @@ -19885,165 +10014,8 @@ 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 - -class CachesOperations: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-01", - "2026-06-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, - ) - 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.Cache, 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", - "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", - "2026-06-01", - "2026-06-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 + 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, @@ -20053,28 +10025,18 @@ def _create_or_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_caches_create_or_update_request( + _request = build_volumes_perform_replication_transfer_request( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, - cache_name=cache_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, ) @@ -20091,7 +10053,7 @@ def _create_or_update_initial( response = pipeline_response.http_response - if response.status_code not in [200, 201]: + if response.status_code not in [202]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -20104,11 +10066,8 @@ def _create_or_update_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() @@ -20117,147 +10076,11 @@ def _create_or_update_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 - @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", - "2026-06-01", - "2026-06-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. + 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. @@ -20266,31 +10089,25 @@ def begin_create_or_update( :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 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.Cache] = 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_or_update_initial( + raw_result = self._perform_replication_transfer_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, + volume_name=volume_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -20299,12 +10116,9 @@ def begin_create_or_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.Cache, 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), @@ -20319,51 +10133,21 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.Cache].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.Cache]( - 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 - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def _update_initial( + def _pool_change_initial( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, - body: Union[_models.CacheUpdate, _types.CacheUpdate, IO[bytes]], + volume_name: str, + body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -20387,11 +10171,11 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_caches_update_request( + _request = build_volumes_pool_change_request( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, - cache_name=cache_name, + volume_name=volume_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -20426,9 +10210,6 @@ 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")) @@ -20440,18 +10221,18 @@ def _update_initial( return deserialized # type: ignore @overload - def begin_update( + def begin_pool_change( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, - body: _models.CacheUpdate, + volume_name: str, + body: _models.PoolChangeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.Cache]: - """Patch the specified Cache. + ) -> LROPoller[None]: + """Moves volume to another pool. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -20460,32 +10241,31 @@ def begin_update( :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. Required. - :type body: ~azure.mgmt.netapp.models.CacheUpdate + :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 Cache. The Cache is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_update( + def begin_pool_change( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, - body: _types.CacheUpdate, + volume_name: str, + body: _types.PoolChangeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.Cache]: - """Patch the specified Cache. + ) -> LROPoller[None]: + """Moves volume to another pool. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -20494,32 +10274,31 @@ def begin_update( :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. Required. - :type body: ~azure.mgmt.netapp.types.CacheUpdate + :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 Cache. The Cache is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_update( + def begin_pool_change( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, + volume_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.Cache]: - """Patch the specified Cache. + ) -> LROPoller[None]: + """Moves volume to another pool. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -20528,58 +10307,29 @@ def begin_update( :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. Required. + :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 Cache. The Cache is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.Cache] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :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", - "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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def begin_update( + def begin_pool_change( self, resource_group_name: str, account_name: str, pool_name: str, - cache_name: str, - body: Union[_models.CacheUpdate, _types.CacheUpdate, IO[bytes]], + volume_name: str, + body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.Cache]: - """Patch the specified Cache. + ) -> LROPoller[None]: + """Moves volume to another pool. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -20588,31 +10338,30 @@ def begin_update( :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 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[_models.Cache] = 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._pool_change_initial( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, - cache_name=cache_name, + volume_name=volume_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -20623,12 +10372,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.Cache, 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), @@ -20643,44 +10389,22 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.Cache].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.Cache]( - 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 - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def _delete_initial( - self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any + 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, @@ -20690,18 +10414,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_caches_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_relocate_request( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, - cache_name=cache_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, ) @@ -20718,7 +10456,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]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -20742,37 +10480,85 @@ 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", - "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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def begin_delete( - self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any + @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: + """ + + @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. + + :param resource_group_name: The name of 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: + """ + + @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]: - """Delete the specified cache. + """Relocates volume to a new stamp. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -20781,88 +10567,29 @@ def begin_delete( :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 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: """ - _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, - 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) - - 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="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", - "2026-06-01", - "2026-06-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 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. @@ -20871,145 +10598,69 @@ def list( :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 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 = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(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", - "2026-06-01", - "2026-06-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. + 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) - :param resource_group_name: The name of 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: - """ + 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 _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, @@ -21021,13 +10672,13 @@ def list_peering_passphrases( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.PeeringPassphrases] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_caches_list_peering_passphrases_request( + _request = build_volumes_finalize_relocation_request( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, - cache_name=cache_name, + volume_name=volume_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -21039,19 +10690,18 @@ def list_peering_passphrases( _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, @@ -21059,52 +10709,85 @@ def list_peering_passphrases( ) 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.PeeringPassphrases, 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 - @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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def _pool_change_initial( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - cache_name: str, - body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, 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, @@ -21114,28 +10797,18 @@ def _pool_change_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_caches_pool_change_request( + _request = build_volumes_revert_relocation_request( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, - cache_name=cache_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, ) @@ -21169,154 +10842,19 @@ def _pool_change_initial( 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, - 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: - """ + deserialized = response.iter_bytes() if _decompress else response.iter_raw() - @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. + if cls: + return cls(pipeline_response, deserialized, response_headers) # 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 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: - """ + 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", - "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", - "2026-06-01", - "2026-06-15-preview", - ], - ) - def begin_pool_change( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - cache_name: str, - body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]], - **kwargs: Any - ) -> LROPoller[_models.Cache]: - """Moves Cache to another Capacity Pool. + 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. @@ -21325,33 +10863,25 @@ def begin_pool_change( :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 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.Cache] = 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._pool_change_initial( + raw_result = self._revert_relocation_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, + volume_name=volume_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -21360,12 +10890,9 @@ def begin_pool_change( 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()) + 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), @@ -21380,30 +10907,30 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.Cache].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.Cache]( - 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 @api_version_validation( - method_added_on="2025-12-15-preview", + method_added_on="2025-12-01", params_added_on={ - "2025-12-15-preview": [ + "2025-12-01": [ "api_version", "subscription_id", "resource_group_name", "account_name", "pool_name", - "cache_name", + "volume_name", + "content_type", "accept", ] }, api_versions_list=[ + "2025-12-01", "2025-12-15-preview", "2026-01-01", "2026-01-15-preview", @@ -21415,10 +10942,19 @@ def get_long_running_output(pipeline_response): "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def _reset_smb_password_initial( - self, resource_group_name: str, account_name: str, pool_name: str, cache_name: str, **kwargs: Any + 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, @@ -21428,18 +10964,32 @@ def _reset_smb_password_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_caches_reset_smb_password_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, pool_name=pool_name, - cache_name=cache_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, ) @@ -21470,6 +11020,9 @@ def _reset_smb_password_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")) @@ -21478,23 +11031,127 @@ def _reset_smb_password_initial( if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore - return deserialized # type: ignore + 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 @api_version_validation( - method_added_on="2025-12-15-preview", + method_added_on="2025-12-01", params_added_on={ - "2025-12-15-preview": [ + "2025-12-01": [ "api_version", "subscription_id", "resource_group_name", "account_name", "pool_name", - "cache_name", + "volume_name", + "content_type", "accept", ] }, api_versions_list=[ + "2025-12-01", "2025-12-15-preview", "2026-01-01", "2026-01-15-preview", @@ -21506,12 +11163,21 @@ def _reset_smb_password_initial( "2026-05-15-preview", "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - 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_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. @@ -21520,26 +11186,34 @@ def begin_reset_smb_password( :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] + :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[_models.Cache] = 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._reset_smb_password_initial( + raw_result = self._list_quota_report_initial( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, - cache_name=cache_name, + volume_name=volume_name, + body=body, + content_type=content_type, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -21549,10 +11223,17 @@ def begin_reset_smb_password( kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): + response_headers = {} response = pipeline_response.http_response - deserialized = _deserialize(_models.Cache, response.json()) + 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, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized path_format_arguments = { @@ -21568,25 +11249,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.Cache].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[_models.Cache]( + return LROPoller[_models.ListQuotaReportResult]( self._client, raw_result, get_long_running_output, polling_method # type: ignore ) -class ElasticAccountsOperations: # pylint: disable=docstring-missing-param +class SnapshotsOperations: # pylint: disable=docstring-missing-param """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.netapp.NetAppManagementClient`'s - :attr:`elastic_accounts` attribute. + :attr:`snapshots` attribute. """ def __init__(self, *args, **kwargs) -> None: @@ -21597,30 +11278,30 @@ 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", "accept"] - }, - api_versions_list=[ - "2025-12-15-preview", - "2026-01-15-preview", - "2026-03-15-preview", - "2026-04-15-preview", - "2026-05-15-preview", - "2026-06-15-preview", - ], - ) - def get(self, resource_group_name: str, account_name: str, **kwargs: Any) -> _models.ElasticAccount: - """Get the NetApp Elastic Account. + def get( + 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :return: ElasticAccount. The ElasticAccount is compatible with MutableMapping - :rtype: ~azure.mgmt.netapp.models.ElasticAccount + :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 = { @@ -21634,11 +11315,14 @@ def get(self, resource_group_name: str, account_name: str, **kwargs: Any) -> _mo _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ElasticAccount] = kwargs.pop("cls", None) + cls: ClsType[_models.Snapshot] = kwargs.pop("cls", None) - _request = build_elastic_accounts_get_request( + _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, @@ -21673,39 +11357,21 @@ def get(self, resource_group_name: str, account_name: str, **kwargs: Any) -> _mo if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.ElasticAccount, response.json()) + deserialized = _deserialize(_models.Snapshot, 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", - "2026-06-15-preview", - ], - ) - def _create_or_update_initial( + def _create_initial( self, resource_group_name: str, account_name: str, - body: Union[_models.ElasticAccount, _types.ElasticAccount, 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 = { @@ -21729,9 +11395,12 @@ def _create_or_update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_accounts_create_or_update_request( + _request = build_snapshots_create_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, @@ -21752,7 +11421,7 @@ def _create_or_update_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): @@ -21765,11 +11434,8 @@ def _create_or_update_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() @@ -21779,146 +11445,164 @@ def _create_or_update_initial( return deserialized # type: ignore @overload - def begin_create_or_update( + def begin_create( self, resource_group_name: str, account_name: str, - body: _models.ElasticAccount, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: _models.Snapshot, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticAccount]: - """Create or update the specified NetApp Elastic Account within the resource group. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param body: Resource create parameters. Required. - :type body: ~azure.mgmt.netapp.models.ElasticAccount + :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 ElasticAccount. The ElasticAccount is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount] + :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_or_update( + def begin_create( self, resource_group_name: str, account_name: str, - body: _types.ElasticAccount, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: _types.Snapshot, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticAccount]: - """Create or update the specified NetApp Elastic Account within the resource group. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param body: Resource create parameters. Required. - :type body: ~azure.mgmt.netapp.types.ElasticAccount + :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 ElasticAccount. The ElasticAccount is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount] + :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_or_update( + 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.ElasticAccount]: - """Create or update the specified NetApp Elastic Account within the resource group. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param body: Resource create parameters. 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 ElasticAccount. The ElasticAccount is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount] + :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 - @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", - "2026-06-15-preview", - ], - ) - def begin_create_or_update( + """ + + @distributed_trace + def begin_create( self, resource_group_name: str, account_name: str, - body: Union[_models.ElasticAccount, _types.ElasticAccount, IO[bytes]], + pool_name: str, + volume_name: str, + snapshot_name: str, + body: Union[_models.Snapshot, _types.Snapshot, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticAccount]: - """Create or update the specified NetApp Elastic Account within the resource group. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticAccount. The ElasticAccount is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount] + :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] :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) + 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._create_or_update_initial( + raw_result = self._create_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, @@ -21930,10 +11614,14 @@ def begin_create_or_update( kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): + response_headers = {} response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticAccount, 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 = { @@ -21949,42 +11637,24 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticAccount].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.ElasticAccount]( + return LROPoller[_models.Snapshot]( 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", - "2026-06-15-preview", - ], - ) def _update_initial( self, resource_group_name: str, account_name: str, - body: Union[_models.ElasticAccountUpdate, _types.ElasticAccountUpdate, IO[bytes]], + pool_name: str, + volume_name: str, + snapshot_name: str, + body: Union[_models.SnapshotPatch, _types.SnapshotPatch, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -22008,9 +11678,12 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_accounts_update_request( + _request = build_snapshots_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, @@ -22045,9 +11718,6 @@ 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")) @@ -22063,26 +11733,35 @@ def begin_update( self, resource_group_name: str, account_name: str, - body: _models.ElasticAccountUpdate, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: _models.SnapshotPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticAccount]: - """Patch the specified NetApp Elastic Account. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param body: The resource properties to be updated. Required. - :type body: ~azure.mgmt.netapp.models.ElasticAccountUpdate + :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 ElasticAccount. The ElasticAccount is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount] + :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: """ @@ -22091,26 +11770,35 @@ def begin_update( self, resource_group_name: str, account_name: str, - body: _types.ElasticAccountUpdate, + pool_name: str, + volume_name: str, + snapshot_name: str, + body: _types.SnapshotPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticAccount]: - """Patch the specified NetApp Elastic Account. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param body: The resource properties to be updated. Required. - :type body: ~azure.mgmt.netapp.types.ElasticAccountUpdate + :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 ElasticAccount. The ElasticAccount is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount] + :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: """ @@ -22119,79 +11807,76 @@ 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.ElasticAccount]: - """Patch the specified NetApp Elastic Account. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param body: The resource properties to be updated. 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 ElasticAccount. The ElasticAccount is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount] + :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 - @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", - "2026-06-15-preview", - ], - ) def begin_update( self, resource_group_name: str, account_name: str, - body: Union[_models.ElasticAccountUpdate, _types.ElasticAccountUpdate, IO[bytes]], + pool_name: str, + volume_name: str, + snapshot_name: str, + body: Union[_models.SnapshotPatch, _types.SnapshotPatch, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticAccount]: - """Patch the specified NetApp Elastic Account. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticAccount. The ElasticAccount is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticAccount] + :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.ElasticAccount] = 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) @@ -22199,6 +11884,9 @@ 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_name=snapshot_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -22211,7 +11899,7 @@ def begin_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticAccount, response.json()) + deserialized = _deserialize(_models.Snapshot, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -22229,31 +11917,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticAccount].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.ElasticAccount]( + return LROPoller[_models.Snapshot]( 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", - "2026-06-15-preview", - ], - ) - def _delete_initial(self, resource_group_name: str, account_name: str, **kwargs: Any) -> Iterator[bytes]: + 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, @@ -22267,9 +11949,12 @@ def _delete_initial(self, resource_group_name: str, account_name: str, **kwargs: cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_elastic_accounts_delete_request( + _request = build_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, @@ -22288,7 +11973,7 @@ def _delete_initial(self, resource_group_name: str, account_name: str, **kwargs: 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): @@ -22313,28 +11998,28 @@ def _delete_initial(self, resource_group_name: str, account_name: str, **kwargs: 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"] - }, - api_versions_list=[ - "2025-12-15-preview", - "2026-01-15-preview", - "2026-03-15-preview", - "2026-04-15-preview", - "2026-05-15-preview", - "2026-06-15-preview", - ], - ) - def begin_delete(self, resource_group_name: str, account_name: str, **kwargs: Any) -> LROPoller[None]: - """Delete the specified NetApp elastic account. + def begin_delete( + self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + snapshot_name: str, + **kwargs: Any + ) -> LROPoller[None]: + """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 ElasticAccount. Required. + :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 :return: An instance of LROPoller that returns None :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -22350,6 +12035,9 @@ def begin_delete(self, resource_group_name: str, account_name: str, **kwargs: An 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, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -22384,32 +12072,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 - @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", - "2026-06-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. + 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 - :return: An iterator like instance of ElasticAccount - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticAccount] + :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.ElasticAccount]] = kwargs.pop("cls", None) + cls: ClsType[List[_models.Snapshot]] = kwargs.pop("cls", None) error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -22422,8 +12106,11 @@ def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> Ite def prepare_request(next_link=None): if not next_link: - _request = build_elastic_accounts_list_by_resource_group_request( + _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, @@ -22464,7 +12151,7 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() list_of_elem = _deserialize( - List[_models.ElasticAccount], + List[_models.Snapshot], deserialized.get("value", []), ) if cls: @@ -22492,31 +12179,16 @@ 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", "accept"]}, - api_versions_list=[ - "2025-12-15-preview", - "2026-01-15-preview", - "2026-03-15-preview", - "2026-04-15-preview", - "2026-05-15-preview", - "2026-06-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) - + 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, @@ -22525,87 +12197,268 @@ def list_by_subscription(self, **kwargs: Any) -> ItemPaged["_models.ElasticAccou } error_map.update(kwargs.pop("error_map", {}) or {}) - def prepare_request(next_link=None): - if not next_link: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} - _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) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - 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 = 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, + ) + 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_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 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. - 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 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. 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: + """ + _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.ElasticAccount], - deserialized.get("value", []), + 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: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.get("nextLink") or None, iter(list_of_elem) + return cls(pipeline_response, None, {}) # type: ignore - def get_next(next_link=None): - _request = prepare_request(next_link) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } - _stream = False - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **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) + 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 ElasticCapacityPoolsOperations: # pylint: disable=docstring-missing-param +class SnapshotPoliciesOperations: # pylint: disable=docstring-missing-param """ .. 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. + :attr:`snapshot_policies` attribute. """ def __init__(self, *args, **kwargs) -> None: @@ -22616,41 +12469,20 @@ 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", - "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", - "2026-06-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. + 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 = { @@ -22664,12 +12496,12 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ElasticCapacityPool] = kwargs.pop("cls", None) + cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", None) - _request = build_elastic_capacity_pools_get_request( + _request = build_snapshot_policies_get_request( resource_group_name=resource_group_name, account_name=account_name, - pool_name=pool_name, + snapshot_policy_name=snapshot_policy_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -22704,341 +12536,203 @@ def get( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.ElasticCapacityPool, response.json()) + deserialized = _deserialize(_models.SnapshotPolicy, 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", - "2026-06-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, - 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_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 = 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( + def create( self, resource_group_name: str, account_name: str, - pool_name: str, - body: _models.ElasticCapacityPool, + snapshot_policy_name: str, + body: _models.SnapshotPolicy, *, 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. + ) -> _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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticCapacityPool. The ElasticCapacityPool is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool] + :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, - body: _types.ElasticCapacityPool, + snapshot_policy_name: str, + body: _types.SnapshotPolicy, *, 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. + ) -> _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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticCapacityPool. The ElasticCapacityPool is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool] + :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, + snapshot_policy_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. + ) -> _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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. - :type pool_name: str - :param body: Resource create parameters. 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 ElasticCapacityPool. The ElasticCapacityPool is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool] + :return: SnapshotPolicy. The SnapshotPolicy is compatible with MutableMapping + :rtype: ~azure.mgmt.netapp.models.SnapshotPolicy :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", - "2026-06-15-preview", - ], - ) - def begin_create_or_update( + def create( self, resource_group_name: str, account_name: str, - pool_name: str, - body: Union[_models.ElasticCapacityPool, _types.ElasticCapacityPool, IO[bytes]], + snapshot_policy_name: str, + body: Union[_models.SnapshotPolicy, _types.SnapshotPolicy, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticCapacityPool]: - """Create or update the specified NetApp Elastic Capacity Pool within the resource group and - NetApp Elastic Account. + ) -> _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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticCapacityPool. The ElasticCapacityPool is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool] + :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.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) + cls: ClsType[_models.SnapshotPolicy] = kwargs.pop("cls", 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 + 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.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 - ) + deserialized = _deserialize(_models.SnapshotPolicy, 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", - "2026-06-15-preview", - ], - ) def _update_initial( self, resource_group_name: str, account_name: str, - pool_name: str, - body: Union[_models.ElasticCapacityPoolUpdate, _types.ElasticCapacityPoolUpdate, IO[bytes]], + snapshot_policy_name: str, + body: Union[_models.SnapshotPolicyPatch, _types.SnapshotPolicyPatch, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -23062,10 +12756,10 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_capacity_pools_update_request( + _request = build_snapshot_policies_update_request( resource_group_name=resource_group_name, account_name=account_name, - pool_name=pool_name, + snapshot_policy_name=snapshot_policy_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -23100,9 +12794,6 @@ 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")) @@ -23118,29 +12809,29 @@ def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, - body: _models.ElasticCapacityPoolUpdate, + snapshot_policy_name: str, + body: _models.SnapshotPolicyPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticCapacityPool]: - """Patch the specified NetApp Elastic Capacity Pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticCapacityPool. The ElasticCapacityPool is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool] + :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: """ @@ -23149,29 +12840,29 @@ def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, - body: _types.ElasticCapacityPoolUpdate, + snapshot_policy_name: str, + body: _types.SnapshotPolicyPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticCapacityPool]: - """Patch the specified NetApp Elastic Capacity Pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticCapacityPool. The ElasticCapacityPool is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticCapacityPool] + :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: """ @@ -23180,86 +12871,64 @@ def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, + snapshot_policy_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticCapacityPool]: - """Patch the specified NetApp Elastic Capacity Pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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 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", - "2026-06-15-preview", - ], - ) + :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: + """ + + @distributed_trace def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, - body: Union[_models.ElasticCapacityPoolUpdate, _types.ElasticCapacityPoolUpdate, IO[bytes]], + snapshot_policy_name: str, + body: Union[_models.SnapshotPolicyPatch, _types.SnapshotPolicyPatch, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticCapacityPool]: - """Patch the specified NetApp Elastic Capacity Pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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] + :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.ElasticCapacityPool] = 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) @@ -23267,7 +12936,7 @@ def begin_update( raw_result = self._update_initial( resource_group_name=resource_group_name, account_name=account_name, - pool_name=pool_name, + snapshot_policy_name=snapshot_policy_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -23280,7 +12949,7 @@ def begin_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticCapacityPool, response.json()) + deserialized = _deserialize(_models.SnapshotPolicy, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -23298,32 +12967,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticCapacityPool].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.ElasticCapacityPool]( + return LROPoller[_models.SnapshotPolicy]( 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", - "2026-06-15-preview", - ], - ) def _delete_initial( - self, resource_group_name: str, account_name: str, pool_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, @@ -23338,10 +12993,10 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_elastic_capacity_pools_delete_request( + _request = build_snapshot_policies_delete_request( resource_group_name=resource_group_name, account_name=account_name, - pool_name=pool_name, + snapshot_policy_name=snapshot_policy_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -23360,7 +13015,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): @@ -23385,32 +13040,18 @@ 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", "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", - "2026-06-15-preview", - ], - ) def begin_delete( - self, resource_group_name: str, account_name: str, pool_name: str, **kwargs: Any + self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any ) -> LROPoller[None]: - """Delete the specified NetApp Elastic Capacity Pool. + """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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. - :type pool_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: @@ -23426,7 +13067,7 @@ def begin_delete( raw_result = self._delete_initial( resource_group_name=resource_group_name, account_name=account_name, - pool_name=pool_name, + snapshot_policy_name=snapshot_policy_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -23461,38 +13102,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 - @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", - "2026-06-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. + 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :return: An iterator like instance of ElasticCapacityPool - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticCapacityPool] + :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.ElasticCapacityPool]] = kwargs.pop("cls", None) + cls: ClsType[List[_models.SnapshotPolicy]] = kwargs.pop("cls", None) error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -23505,7 +13130,7 @@ def list_by_elastic_account( def prepare_request(next_link=None): if not next_link: - _request = build_elastic_capacity_pools_list_by_elastic_account_request( + _request = build_snapshot_policies_list_request( resource_group_name=resource_group_name, account_name=account_name, subscription_id=self._config.subscription_id, @@ -23548,62 +13173,209 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() list_of_elem = _deserialize( - List[_models.ElasticCapacityPool], + List[_models.SnapshotPolicy], 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) + + @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, + 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.SnapshotPolicyVolumeList] = kwargs.pop("cls", None) + + _request = build_snapshot_policies_list_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) + + _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.SnapshotPolicyVolumeList, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + +class BackupPoliciesOperations: # pylint: disable=docstring-missing-param + """ + .. 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 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 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.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) + + _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 - _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 + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - 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 _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(_models.BackupPolicy, response.json()) - return pipeline_response + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore - return ItemPaged(get_next, extract_data) + 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", - "2026-06-15-preview", - ], - ) - def _change_zone_initial( + def _create_initial( self, resource_group_name: str, account_name: str, - pool_name: str, - body: Union[_models.ChangeZoneRequest, _types.ChangeZoneRequest, IO[bytes]], + backup_policy_name: str, + body: Union[_models.BackupPolicy, _types.BackupPolicy, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -23627,10 +13399,10 @@ def _change_zone_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_capacity_pools_change_zone_request( + _request = build_backup_policies_create_request( resource_group_name=resource_group_name, account_name=account_name, - pool_name=pool_name, + backup_policy_name=backup_policy_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -23651,7 +13423,7 @@ def _change_zone_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): @@ -23664,6 +13436,12 @@ def _change_zone_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")) @@ -23676,562 +13454,184 @@ def _change_zone_initial( return deserialized # type: ignore @overload - 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 - ) -> 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 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 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_change_zone( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - body: _types.ChangeZoneRequest, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> 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 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 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_change_zone( - self, - resource_group_name: str, - account_name: str, - pool_name: str, - body: IO[bytes], - *, - content_type: str = "application/json", - **kwargs: Any - ) -> 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 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 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", - "2026-06-15-preview", - ], - ) - 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 - ) -> 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 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 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._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 - ) - 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 - ) - - @overload - def check_volume_file_path_availability( + def begin_create( self, resource_group_name: str, account_name: str, - pool_name: str, - body: _models.CheckElasticVolumeFilePathAvailabilityRequest, + backup_policy_name: str, + body: _models.BackupPolicy, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.CheckElasticResourceAvailabilityResponse: - """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse - is compatible with MutableMapping - :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse + :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 check_volume_file_path_availability( + def begin_create( self, resource_group_name: str, account_name: str, - pool_name: str, - body: _types.CheckElasticVolumeFilePathAvailabilityRequest, + backup_policy_name: str, + body: _types.BackupPolicy, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.CheckElasticResourceAvailabilityResponse: - """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse - is compatible with MutableMapping - :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse + :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 check_volume_file_path_availability( + def begin_create( self, resource_group_name: str, account_name: str, - pool_name: str, + backup_policy_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. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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: CheckElasticResourceAvailabilityResponse. The CheckElasticResourceAvailabilityResponse - is compatible with MutableMapping - :rtype: ~azure.mgmt.netapp.models.CheckElasticResourceAvailabilityResponse + :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 - @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", - "2026-06-15-preview", - ], - ) - def check_volume_file_path_availability( + def begin_create( self, resource_group_name: str, account_name: str, - pool_name: str, - body: Union[ - _models.CheckElasticVolumeFilePathAvailabilityRequest, - _types.CheckElasticVolumeFilePathAvailabilityRequest, - IO[bytes], - ], + backup_policy_name: str, + body: Union[_models.BackupPolicy, _types.BackupPolicy, IO[bytes]], **kwargs: Any - ) -> _models.CheckElasticResourceAvailabilityResponse: - """Check if an Elastic Volume file path is available within the given Elastic Capacity Pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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: """ - 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 = 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, + 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._create_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 ) - 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: # pylint: disable=docstring-missing-param - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.netapp.NetAppManagementClient`'s - :attr:`elastic_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 - @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", - "2026-06-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 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 {} + raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) - cls: ClsType[_models.ElasticVolume] = kwargs.pop("cls", None) + def get_long_running_output(pipeline_response): + response = pipeline_response.http_response + deserialized = _deserialize(_models.BackupPolicy, response.json()) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized - _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 = 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.ElasticVolume, response.json()) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore + polling_method = polling + if cont_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.BackupPolicy]( + 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", - "2026-06-15-preview", - ], - ) - def _create_or_update_initial( + def _update_initial( self, resource_group_name: str, account_name: str, - pool_name: str, - volume_name: str, - body: Union[_models.ElasticVolume, _types.ElasticVolume, IO[bytes]], + backup_policy_name: str, + body: Union[_models.BackupPolicyPatch, _types.BackupPolicyPatch, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -24255,11 +13655,10 @@ def _create_or_update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_volumes_create_or_update_request( + _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, @@ -24280,7 +13679,7 @@ def _create_or_update_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): @@ -24293,7 +13692,7 @@ def _create_or_update_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") ) @@ -24307,176 +13706,269 @@ def _create_or_update_initial( return deserialized # type: ignore @overload - def begin_create_or_update( + def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, - volume_name: str, - body: _models.ElasticVolume, + backup_policy_name: str, + body: _models.BackupPolicyPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticVolume]: - """Create or update the specified volume within the capacity pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticVolume. The ElasticVolume is compatible + :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, - volume_name: str, - body: _types.ElasticVolume, + backup_policy_name: str, + body: _types.BackupPolicyPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticVolume]: - """Create or update the specified volume within the capacity pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticVolume. The ElasticVolume is compatible + :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def begin_update( 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[_models.ElasticVolume]: - """Create or update the specified volume within the capacity pool. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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 ElasticVolume. The ElasticVolume is compatible + :return: An instance of LROPoller that returns BackupPolicy. The BackupPolicy is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.BackupPolicy] :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", - "2026-06-15-preview", - ], - ) - def begin_create_or_update( + def begin_update( self, resource_group_name: str, account_name: str, - pool_name: str, - volume_name: str, - body: Union[_models.ElasticVolume, _types.ElasticVolume, IO[bytes]], + backup_policy_name: str, + body: Union[_models.BackupPolicyPatch, _types.BackupPolicyPatch, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticVolume]: - """Create or update the specified volume within the capacity pool. + ) -> 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. 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 = 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) + 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_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) + + def get_long_running_output(pipeline_response): + response = pipeline_response.http_response + deserialized = _deserialize(_models.BackupPolicy, 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.BackupPolicy].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 + ) + + def _delete_initial( + self, resource_group_name: str, account_name: str, backup_policy_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_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 = 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, 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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] + :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 = 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.ElasticVolume] = 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_or_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, - body=body, - content_type=content_type, + backup_policy_name=backup_policy_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -24485,12 +13977,9 @@ def begin_create_or_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.ElasticVolume, 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), @@ -24505,46 +13994,227 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticVolume].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.ElasticVolume]( - 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 + 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 + :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: # pylint: disable=docstring-missing-param + """ + .. 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 get( + self, + resource_group_name: str, + account_name: str, + pool_name: str, + volume_name: str, + 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. + :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: + """ + 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.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) - @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", - "2026-06-15-preview", - ], - ) - def _update_initial( + _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.VolumeQuotaRule, 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.ElasticVolumeUpdate, _types.ElasticVolumeUpdate, IO[bytes]], + volume_quota_rule_name: str, + body: Union[_models.VolumeQuotaRule, _types.VolumeQuotaRule, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -24568,11 +14238,12 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_volumes_update_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, @@ -24593,7 +14264,7 @@ def _update_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): @@ -24606,10 +14277,7 @@ def _update_initial( 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")) @@ -24621,174 +14289,164 @@ def _update_initial( return deserialized # type: ignore @overload - def begin_update( + def begin_create( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: _models.ElasticVolumeUpdate, + volume_quota_rule_name: str, + body: _models.VolumeQuotaRule, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticVolume]: - """Patch the specified elastic volume. + ) -> 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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :param volume_name: The name of the volume. Required. :type volume_name: str - :param body: The resource properties to be updated. Required. - :type body: ~azure.mgmt.netapp.models.ElasticVolumeUpdate + :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 ElasticVolume. The ElasticVolume is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume] + :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( + def begin_create( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: _types.ElasticVolumeUpdate, + volume_quota_rule_name: str, + body: _types.VolumeQuotaRule, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticVolume]: - """Patch the specified elastic volume. + ) -> 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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :param volume_name: The name of the volume. Required. :type volume_name: str - :param body: The resource properties to be updated. Required. - :type body: ~azure.mgmt.netapp.types.ElasticVolumeUpdate + :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 ElasticVolume. The ElasticVolume is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume] + :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( + 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.ElasticVolume]: - """Patch the specified elastic volume. + ) -> 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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :param volume_name: The name of the volume. Required. :type volume_name: str - :param body: The resource properties to be updated. 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 ElasticVolume. The ElasticVolume is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume] + :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-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", - "2026-06-15-preview", - ], - ) - def begin_update( + def begin_create( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: Union[_models.ElasticVolumeUpdate, _types.ElasticVolumeUpdate, IO[bytes]], + volume_quota_rule_name: str, + body: Union[_models.VolumeQuotaRule, _types.VolumeQuotaRule, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticVolume]: - """Patch the specified elastic volume. + ) -> 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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :param volume_name: The name of the volume. 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 LROPoller that returns ElasticVolume. The ElasticVolume is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticVolume] + :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.ElasticVolume] = 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._update_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, @@ -24801,7 +14459,7 @@ def begin_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticVolume, response.json()) + deserialized = _deserialize(_models.VolumeQuotaRule, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -24819,39 +14477,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticVolume].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.ElasticVolume]( + return LROPoller[_models.VolumeQuotaRule]( 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", - "2026-06-15-preview", - ], - ) - def _delete_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, + pool_name: str, + volume_name: str, + volume_quota_rule_name: str, + body: Union[_models.VolumeQuotaRulePatch, _types.VolumeQuotaRulePatch, IO[bytes]], + **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -24861,18 +14505,29 @@ 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_elastic_volumes_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_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, + content=_content, headers=_headers, params=_params, ) @@ -24889,7 +14544,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]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -24911,61 +14566,169 @@ def _delete_initial( if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore - return deserialized # 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. + + :param resource_group_name: The name of 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: + """ + + @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. + + :param resource_group_name: The name of 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: + """ @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", - "2026-06-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. + 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. :param resource_group_name: 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. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :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 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 = 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.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._delete_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, headers=_headers, params=_params, @@ -24974,9 +14737,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.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), @@ -24991,170 +14757,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 - - @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", - "2026-06-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 - - 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.VolumeQuotaRule]( + 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", - "2026-06-15-preview", - ], - ) - def _revert_initial( + def _delete_initial( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: Union[_models.ElasticVolumeRevert, _types.ElasticVolumeRevert, IO[bytes]], + volume_quota_rule_name: str, **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -25165,28 +14784,19 @@ def _revert_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_elastic_volumes_revert_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, ) @@ -25203,7 +14813,7 @@ def _revert_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): @@ -25227,177 +14837,47 @@ def _revert_initial( return deserialized # type: ignore - @overload - 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 - ) -> 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 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 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_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 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 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_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. - - :param resource_group_name: 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: - """ - @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", - "2026-06-15-preview", - ], - ) - def begin_revert( + def begin_delete( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - body: Union[_models.ElasticVolumeRevert, _types.ElasticVolumeRevert, IO[bytes]], + volume_quota_rule_name: str, **kwargs: Any - ) -> LROPoller[_models.ElasticVolume]: - """Revert an Elastic Volume to the snapshot specified in the body. + ) -> LROPoller[None]: + """Delete 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :param volume_name: The name of the volume. 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] + :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[_models.ElasticVolume] = 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._revert_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, @@ -25406,45 +14886,148 @@ def begin_revert( 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()) + 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), + } + + 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. + + :param resource_group_name: The name of 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 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, + 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_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) + + 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.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) + + 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) - path_format_arguments = { - "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), - } + return pipeline_response - 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 - ) + return ItemPaged(get_next, extract_data) -class ElasticSnapshotsOperations: # pylint: disable=docstring-missing-param +class RansomwareReportsOperations: # pylint: disable=docstring-missing-param """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.netapp.NetAppManagementClient`'s - :attr:`elastic_snapshots` attribute. + :attr:`ransomware_reports` attribute. """ def __init__(self, *args, **kwargs) -> None: @@ -25456,26 +15039,35 @@ def __init__(self, *args, **kwargs) -> None: @distributed_trace @api_version_validation( - method_added_on="2025-12-15-preview", + method_added_on="2025-12-01", params_added_on={ - "2025-12-15-preview": [ + "2025-12-01": [ "api_version", "subscription_id", "resource_group_name", "account_name", "pool_name", "volume_name", - "snapshot_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def get( @@ -25484,24 +15076,28 @@ def get( account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, + ransomware_report_name: str, **kwargs: Any - ) -> _models.ElasticSnapshot: - """Get a ElasticSnapshot. + ) -> _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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :param volume_name: The name of the volume. 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 + :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 = { @@ -25515,14 +15111,14 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ElasticSnapshot] = kwargs.pop("cls", None) + cls: ClsType[_models.RansomwareReport] = kwargs.pop("cls", None) - _request = build_elastic_snapshots_get_request( + _request = build_ransomware_reports_get_request( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, volume_name=volume_name, - snapshot_name=snapshot_name, + ransomware_report_name=ransomware_report_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -25557,372 +15153,197 @@ def get( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.ElasticSnapshot, response.json()) + deserialized = _deserialize(_models.RansomwareReport, 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", - "2026-06-15-preview", - ], - ) - 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 - ) -> 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_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 = 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, - account_name: str, - pool_name: str, - volume_name: str, - snapshot_name: str, - body: _models.ElasticSnapshot, - *, - 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: ~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 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: _types.ElasticSnapshot, - *, - 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: ~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", + method_added_on="2025-12-01", params_added_on={ - "2025-12-15-preview": [ + "2025-12-01": [ "api_version", "subscription_id", "resource_group_name", "account_name", "pool_name", "volume_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - 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. + 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :param volume_name: The name of the volume. 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] + :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)) - 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 + cls: ClsType[List[_models.RansomwareReport]] = kwargs.pop("cls", None) - path_format_arguments = { - "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, } + error_map.update(kwargs.pop("error_map", {}) or {}) - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + 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", []), ) - 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, + 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 ) - return LROPoller[_models.ElasticSnapshot]( - 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) @api_version_validation( - method_added_on="2025-12-15-preview", + method_added_on="2025-12-01", params_added_on={ - "2025-12-15-preview": [ + "2025-12-01": [ "api_version", "subscription_id", "resource_group_name", "account_name", "pool_name", "volume_name", - "snapshot_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def _delete_initial( + def _clear_suspects_initial( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, + ransomware_report_name: str, + body: Union[_models.RansomwareSuspectsClearRequest, _types.RansomwareSuspectsClearRequest, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -25933,19 +15354,29 @@ 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_elastic_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_ransomware_reports_clear_suspects_request( resource_group_name=resource_group_name, account_name=account_name, pool_name=pool_name, volume_name=volume_name, - snapshot_name=snapshot_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, ) @@ -25962,7 +15393,7 @@ def _delete_initial( response = pipeline_response.http_response - if response.status_code not in [202, 204]: + if response.status_code not in [202]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -25975,80 +15406,221 @@ 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")) + 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 @api_version_validation( - method_added_on="2025-12-15-preview", + method_added_on="2025-12-01", params_added_on={ - "2025-12-15-preview": [ + "2025-12-01": [ "api_version", "subscription_id", "resource_group_name", "account_name", "pool_name", "volume_name", - "snapshot_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def begin_delete( + def begin_clear_suspects( self, resource_group_name: str, account_name: str, pool_name: str, volume_name: str, - snapshot_name: str, + ransomware_report_name: str, + body: Union[_models.RansomwareSuspectsClearRequest, _types.RansomwareSuspectsClearRequest, IO[bytes]], **kwargs: Any ) -> LROPoller[None]: - """Delete a ElasticSnapshot. + """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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param pool_name: The name of the ElasticCapacityPool. Required. + :param pool_name: The name of the capacity pool. Required. :type pool_name: str - :param volume_name: The name of the ElasticVolume. Required. + :param volume_name: The name of the volume. Required. :type volume_name: str - :param snapshot_name: The name of the ElasticSnapshot. Required. - :type snapshot_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._delete_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, - snapshot_name=snapshot_name, + ransomware_report_name=ransomware_report_name, + body=body, + content_type=content_type, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -26082,190 +15654,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 - @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", - "2026-06-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) - - 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: # pylint: disable=docstring-missing-param +class BackupVaultsOperations: # pylint: disable=docstring-missing-param """ .. warning:: **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.netapp.NetAppManagementClient`'s - :attr:`elastic_snapshot_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", - "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", - "2026-06-15-preview", - ], - ) + + 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, snapshot_policy_name: str, **kwargs: Any - ) -> _models.ElasticSnapshotPolicy: - """Get a ElasticSnapshotPolicy. + 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 = { @@ -26279,12 +15700,12 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ElasticSnapshotPolicy] = kwargs.pop("cls", None) + cls: ClsType[_models.BackupVault] = kwargs.pop("cls", None) - _request = build_elastic_snapshot_policies_get_request( + _request = build_backup_vaults_get_request( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + backup_vault_name=backup_vault_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -26319,41 +15740,19 @@ def get( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json()) + deserialized = _deserialize(_models.BackupVault, 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", - "2026-06-15-preview", - ], - ) 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]], + backup_vault_name: str, + body: Union[_models.BackupVault, _types.BackupVault, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -26377,10 +15776,10 @@ def _create_or_update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_snapshot_policies_create_or_update_request( + _request = build_backup_vaults_create_or_update_request( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + backup_vault_name=backup_vault_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -26432,29 +15831,29 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: _models.ElasticSnapshotPolicy, + backup_vault_name: str, + body: _models.BackupVault, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticSnapshotPolicy]: - """Create a ElasticSnapshotPolicy. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticSnapshotPolicy. The ElasticSnapshotPolicy - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy] + :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: """ @@ -26463,29 +15862,29 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: _types.ElasticSnapshotPolicy, + backup_vault_name: str, + body: _types.BackupVault, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticSnapshotPolicy]: - """Create a ElasticSnapshotPolicy. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticSnapshotPolicy. The ElasticSnapshotPolicy - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy] + :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: """ @@ -26494,86 +15893,64 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + backup_vault_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticSnapshotPolicy]: - """Create a ElasticSnapshotPolicy. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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 ElasticSnapshotPolicy. The ElasticSnapshotPolicy - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy] + :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 - @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", - "2026-06-15-preview", - ], - ) 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]], + backup_vault_name: str, + body: Union[_models.BackupVault, _types.BackupVault, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticSnapshotPolicy]: - """Create a ElasticSnapshotPolicy. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy] + :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 = 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) + 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) @@ -26581,7 +15958,7 @@ def begin_create_or_update( raw_result = self._create_or_update_initial( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + backup_vault_name=backup_vault_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -26594,7 +15971,7 @@ def begin_create_or_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json()) + deserialized = _deserialize(_models.BackupVault, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -26612,44 +15989,22 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticSnapshotPolicy].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[_models.ElasticSnapshotPolicy]( + return LROPoller[_models.BackupVault]( 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", - "2026-06-15-preview", - ], - ) def _update_initial( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: Union[_models.ElasticSnapshotPolicyUpdate, _types.ElasticSnapshotPolicyUpdate, IO[bytes]], + backup_vault_name: str, + body: Union[_models.BackupVaultPatch, _types.BackupVaultPatch, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -26673,10 +16028,10 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_snapshot_policies_update_request( + _request = build_backup_vaults_update_request( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + backup_vault_name=backup_vault_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -26711,9 +16066,6 @@ 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")) @@ -26729,29 +16081,29 @@ def begin_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: _models.ElasticSnapshotPolicyUpdate, + backup_vault_name: str, + body: _models.BackupVaultPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticSnapshotPolicy]: - """Update a ElasticSnapshotPolicy. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticSnapshotPolicy. The ElasticSnapshotPolicy - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy] + :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: """ @@ -26760,29 +16112,29 @@ def begin_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: _types.ElasticSnapshotPolicyUpdate, + backup_vault_name: str, + body: _types.BackupVaultPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticSnapshotPolicy]: - """Update a ElasticSnapshotPolicy. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticSnapshotPolicy. The ElasticSnapshotPolicy - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy] + :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: """ @@ -26791,86 +16143,64 @@ def begin_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, + backup_vault_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticSnapshotPolicy]: - """Update a ElasticSnapshotPolicy. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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 ElasticSnapshotPolicy. The ElasticSnapshotPolicy - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy] + :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 - @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", - "2026-06-15-preview", - ], - ) def begin_update( self, resource_group_name: str, account_name: str, - snapshot_policy_name: str, - body: Union[_models.ElasticSnapshotPolicyUpdate, _types.ElasticSnapshotPolicyUpdate, IO[bytes]], + backup_vault_name: str, + body: Union[_models.BackupVaultPatch, _types.BackupVaultPatch, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticSnapshotPolicy]: - """Update a ElasticSnapshotPolicy. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticSnapshotPolicy. The ElasticSnapshotPolicy - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticSnapshotPolicy] + :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[_models.ElasticSnapshotPolicy] = 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) @@ -26878,7 +16208,7 @@ def begin_update( raw_result = self._update_initial( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + backup_vault_name=backup_vault_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -26891,7 +16221,7 @@ def begin_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticSnapshotPolicy, response.json()) + deserialized = _deserialize(_models.BackupVault, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -26909,38 +16239,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticSnapshotPolicy].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[_models.ElasticSnapshotPolicy]( + return LROPoller[_models.BackupVault]( 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", - "2026-06-15-preview", - ], - ) def _delete_initial( - self, resource_group_name: str, account_name: str, snapshot_policy_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, @@ -26955,10 +16265,10 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_elastic_snapshot_policies_delete_request( + _request = build_backup_vaults_delete_request( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + backup_vault_name=backup_vault_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -27002,38 +16312,18 @@ 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", - "2026-06-15-preview", - ], - ) def begin_delete( - self, resource_group_name: str, account_name: str, snapshot_policy_name: str, **kwargs: Any + self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any ) -> LROPoller[None]: - """Delete a ElasticSnapshotPolicy. + """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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param snapshot_policy_name: The name of the ElasticSnapshotPolicy. Required. - :type snapshot_policy_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: @@ -27049,7 +16339,7 @@ def begin_delete( raw_result = self._delete_initial( resource_group_name=resource_group_name, account_name=account_name, - snapshot_policy_name=snapshot_policy_name, + backup_vault_name=backup_vault_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -27084,163 +16374,24 @@ 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", - "2026-06-15-preview", - ], - ) - def list_by_elastic_account( + def list_by_net_app_account( self, resource_group_name: str, account_name: str, **kwargs: Any - ) -> 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 ElasticAccount. Required. - :type account_name: str - :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.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 - - 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, 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", - "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", - "2026-06-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. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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] + :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.ElasticVolume]] = kwargs.pop("cls", None) + cls: ClsType[List[_models.BackupVault]] = kwargs.pop("cls", None) error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -27253,10 +16404,9 @@ def list_elastic_volumes( def prepare_request(next_link=None): if not next_link: - _request = build_elastic_snapshot_policies_list_elastic_volumes_request( + _request = build_backup_vaults_list_by_net_app_account_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, @@ -27297,7 +16447,7 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() list_of_elem = _deserialize( - List[_models.ElasticVolume], + List[_models.BackupVault], deserialized.get("value", []), ) if cls: @@ -27326,14 +16476,14 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) -class ElasticBackupVaultsOperations: # pylint: disable=docstring-missing-param +class BucketsOperations: # pylint: disable=docstring-missing-param """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.netapp.NetAppManagementClient`'s - :attr:`elastic_backup_vaults` attribute. + :attr:`buckets` attribute. """ def __init__(self, *args, **kwargs) -> None: @@ -27352,33 +16502,54 @@ def __init__(self, *args, **kwargs) -> None: "subscription_id", "resource_group_name", "account_name", - "backup_vault_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def get( - self, resource_group_name: str, account_name: str, backup_vault_name: str, **kwargs: Any - ) -> _models.ElasticBackupVault: - """Get the Elastic Backup Vault. + 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. :param resource_group_name: 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. + :param account_name: The name of the NetApp account. 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 + :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 :raises ~azure.core.exceptions.HttpResponseError: """ error_map: MutableMapping = { @@ -27392,12 +16563,14 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ElasticBackupVault] = kwargs.pop("cls", None) + cls: ClsType[_models.Bucket] = kwargs.pop("cls", None) - _request = build_elastic_backup_vaults_get_request( + _request = build_buckets_get_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, + bucket_name=bucket_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -27432,7 +16605,7 @@ def get( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.ElasticBackupVault, response.json()) + deserialized = _deserialize(_models.Bucket, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore @@ -27447,26 +16620,38 @@ def get( "subscription_id", "resource_group_name", "account_name", - "backup_vault_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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]], + pool_name: str, + volume_name: str, + bucket_name: str, + body: Union[_models.Bucket, _types.Bucket, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -27490,10 +16675,12 @@ def _create_or_update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_backup_vaults_create_or_update_request( + _request = build_buckets_create_or_update_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, + bucket_name=bucket_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -27545,29 +16732,37 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: _models.ElasticBackupVault, + pool_name: str, + volume_name: str, + bucket_name: str, + body: _models.Bucket, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupVault]: - """Create or update the specified Elastic Backup Vault in the Elastic NetApp account. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticBackupVault. The ElasticBackupVault is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault] + :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: """ @@ -27576,29 +16771,37 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: _types.ElasticBackupVault, + pool_name: str, + volume_name: str, + bucket_name: str, + body: _types.Bucket, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupVault]: - """Create or update the specified Elastic Backup Vault in the Elastic NetApp account. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticBackupVault. The ElasticBackupVault is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault] + :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: """ @@ -27607,29 +16810,37 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupVault]: - """Create or update the specified Elastic Backup Vault in the Elastic NetApp account. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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 ElasticBackupVault. The ElasticBackupVault is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault] + :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: """ @@ -27642,51 +16853,67 @@ def begin_create_or_update( "subscription_id", "resource_group_name", "account_name", - "backup_vault_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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]], + pool_name: str, + volume_name: str, + bucket_name: str, + body: Union[_models.Bucket, _types.Bucket, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticBackupVault]: - """Create or update the specified Elastic Backup Vault in the Elastic NetApp account. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticBackupVault. The ElasticBackupVault is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault] + :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] :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) + 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) @@ -27694,7 +16921,9 @@ 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, + pool_name=pool_name, + volume_name=volume_name, + bucket_name=bucket_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -27707,7 +16936,7 @@ def begin_create_or_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticBackupVault, response.json()) + deserialized = _deserialize(_models.Bucket, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -27725,13 +16954,13 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticBackupVault].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.ElasticBackupVault]( + return LROPoller[_models.Bucket]( self._client, raw_result, get_long_running_output, polling_method # type: ignore ) @@ -27743,26 +16972,38 @@ def get_long_running_output(pipeline_response): "subscription_id", "resource_group_name", "account_name", - "backup_vault_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def _update_initial( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: Union[_models.ElasticBackupVaultUpdate, _types.ElasticBackupVaultUpdate, IO[bytes]], + pool_name: str, + volume_name: str, + bucket_name: str, + body: Union[_models.BucketPatch, _types.BucketPatch, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -27786,10 +17027,12 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_backup_vaults_update_request( + _request = build_buckets_update_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, + bucket_name=bucket_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -27842,29 +17085,36 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: _models.ElasticBackupVaultUpdate, + pool_name: str, + volume_name: str, + bucket_name: str, + body: _models.BucketPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupVault]: - """Patch the specified NetApp Elastic Backup Vault. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticBackupVault. The ElasticBackupVault is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault] + :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: """ @@ -27873,29 +17123,36 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: _types.ElasticBackupVaultUpdate, + pool_name: str, + volume_name: str, + bucket_name: str, + body: _types.BucketPatch, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupVault]: - """Patch the specified NetApp Elastic Backup Vault. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 ElasticBackupVault. The ElasticBackupVault is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault] + :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: """ @@ -27904,29 +17161,36 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupVault]: - """Patch the specified NetApp Elastic Backup Vault. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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 ElasticBackupVault. The ElasticBackupVault is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault] + :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: """ @@ -27939,51 +17203,67 @@ def begin_update( "subscription_id", "resource_group_name", "account_name", - "backup_vault_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - body: Union[_models.ElasticBackupVaultUpdate, _types.ElasticBackupVaultUpdate, IO[bytes]], + pool_name: str, + volume_name: str, + bucket_name: str, + body: Union[_models.BucketPatch, _types.BucketPatch, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticBackupVault]: - """Patch the specified NetApp Elastic Backup Vault. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticBackupVault. The ElasticBackupVault is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupVault] + :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] :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) + 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) @@ -27991,7 +17271,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, + pool_name=pool_name, + volume_name=volume_name, + bucket_name=bucket_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -28004,7 +17286,7 @@ def begin_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticBackupVault, response.json()) + deserialized = _deserialize(_models.Bucket, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -28022,13 +17304,13 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticBackupVault].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.ElasticBackupVault]( + return LROPoller[_models.Bucket]( self._client, raw_result, get_long_running_output, polling_method # type: ignore ) @@ -28040,20 +17322,36 @@ def get_long_running_output(pipeline_response): "subscription_id", "resource_group_name", "account_name", - "backup_vault_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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, + pool_name: str, + volume_name: str, + bucket_name: str, + **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -28068,10 +17366,12 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_elastic_backup_vaults_delete_request( + _request = build_buckets_delete_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, + bucket_name=bucket_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -28104,6 +17404,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")) @@ -28123,30 +17426,50 @@ def _delete_initial( "subscription_id", "resource_group_name", "account_name", - "backup_vault_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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, + pool_name: str, + volume_name: str, + bucket_name: str, + **kwargs: Any ) -> LROPoller[None]: - """Delete the specified Elastic Backup Vault. + """Delete a volume's 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param backup_vault_name: The name of the ElasticBackupVault. Required. - :type backup_vault_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: An instance of LROPoller that returns None :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -28162,7 +17485,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, + pool_name=pool_name, + volume_name=volume_name, + bucket_name=bucket_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -28171,261 +17496,32 @@ 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 - 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", "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", - "2026-06-15-preview", - ], - ) - 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 ElasticAccount. Required. - :type account_name: str - :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.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 - - 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, 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 ElasticBackupPoliciesOperations: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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()) + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } - return 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[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={ @@ -28434,28 +17530,52 @@ def get( "subscription_id", "resource_group_name", "account_name", - "backup_policy_name", - "content_type", + "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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - 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]: + 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, @@ -28464,159 +17584,196 @@ def _create_or_update_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 + def prepare_request(next_link=None): + if not next_link: - _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) + _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) - _decompress = kwargs.pop("decompress", True) - _stream = True - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs - ) + 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) - response = pipeline_response.http_response + return _request - 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, + def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + List[_models.Bucket], + deserialized.get("value", []), ) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("nextLink") or None, iter(list_of_elem) - response_headers = {} - if response.status_code == 201: - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") + 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_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_create_or_update( + def generate_credentials( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: _models.ElasticBackupPolicy, + pool_name: str, + volume_name: str, + bucket_name: str, + body: _models.BucketCredentialsExpiry, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupPolicy]: - """Create or update the specified Elastic Backup Policy in the NetApp account. + ) -> _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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 :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 ElasticBackupPolicy. The ElasticBackupPolicy is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy] + :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with + MutableMapping + :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def generate_credentials( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: _types.ElasticBackupPolicy, + pool_name: str, + volume_name: str, + bucket_name: str, + body: _types.BucketCredentialsExpiry, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupPolicy]: - """Create or update the specified Elastic Backup Policy in the NetApp account. + ) -> _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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 :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 ElasticBackupPolicy. The ElasticBackupPolicy is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy] + :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with + MutableMapping + :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def generate_credentials( self, resource_group_name: str, account_name: str, - backup_policy_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupPolicy]: - """Create or update the specified Elastic Backup Policy in the NetApp account. + ) -> _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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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: 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 ElasticBackupPolicy. The ElasticBackupPolicy is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy] + :return: BucketGenerateCredentials. The BucketGenerateCredentials is compatible with + MutableMapping + :rtype: ~azure.mgmt.netapp.models.BucketGenerateCredentials :raises ~azure.core.exceptions.HttpResponseError: """ @@ -28629,98 +17786,132 @@ def begin_create_or_update( "subscription_id", "resource_group_name", "account_name", - "backup_policy_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def begin_create_or_update( + def generate_credentials( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: Union[_models.ElasticBackupPolicy, _types.ElasticBackupPolicy, IO[bytes]], + pool_name: str, + volume_name: str, + bucket_name: str, + body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticBackupPolicy]: - """Create or update the specified Elastic Backup Policy in the NetApp account. + ) -> _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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy] + :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 :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.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) + cls: ClsType[_models.BucketGenerateCredentials] = kwargs.pop("cls", 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 + 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[_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 - ) + deserialized = _deserialize(_models.BucketGenerateCredentials, 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", @@ -28730,26 +17921,37 @@ def get_long_running_output(pipeline_response): "subscription_id", "resource_group_name", "account_name", - "backup_policy_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def _update_initial( + def _generate_akv_credentials_initial( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: Union[_models.ElasticBackupPolicyUpdate, _types.ElasticBackupPolicyUpdate, IO[bytes]], + pool_name: str, + volume_name: str, + bucket_name: str, + body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -28773,10 +17975,12 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_backup_policies_update_request( + _request = build_buckets_generate_akv_credentials_request( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_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, @@ -28797,7 +18001,7 @@ def _update_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): @@ -28810,9 +18014,11 @@ def _update_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() @@ -28822,95 +18028,113 @@ def _update_initial( return deserialized # type: ignore @overload - def begin_update( + def begin_generate_akv_credentials( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: _models.ElasticBackupPolicyUpdate, + pool_name: str, + volume_name: str, + bucket_name: str, + body: _models.BucketCredentialsExpiry, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupPolicy]: - """Patch the specified NetApp Elastic Backup Policy. + ) -> LROPoller[None]: + """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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 :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 ElasticBackupPolicy. The ElasticBackupPolicy is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_update( + def begin_generate_akv_credentials( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: _types.ElasticBackupPolicyUpdate, + pool_name: str, + volume_name: str, + bucket_name: str, + body: _types.BucketCredentialsExpiry, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupPolicy]: - """Patch the specified NetApp Elastic Backup Policy. + ) -> LROPoller[None]: + """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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 :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 ElasticBackupPolicy. The ElasticBackupPolicy is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_update( + def begin_generate_akv_credentials( self, resource_group_name: str, account_name: str, - backup_policy_name: str, + pool_name: str, + volume_name: str, + bucket_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackupPolicy]: - """Patch the specified NetApp Elastic Backup Policy. + ) -> LROPoller[None]: + """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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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. + :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: 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 ElasticBackupPolicy. The ElasticBackupPolicy is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @@ -28923,59 +18147,76 @@ def begin_update( "subscription_id", "resource_group_name", "account_name", - "backup_policy_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def begin_update( + def begin_generate_akv_credentials( self, resource_group_name: str, account_name: str, - backup_policy_name: str, - body: Union[_models.ElasticBackupPolicyUpdate, _types.ElasticBackupPolicyUpdate, IO[bytes]], + pool_name: str, + volume_name: str, + bucket_name: str, + body: Union[_models.BucketCredentialsExpiry, _types.BucketCredentialsExpiry, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticBackupPolicy]: - """Patch the specified NetApp Elastic Backup Policy. + ) -> LROPoller[None]: + """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. :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 LROPoller that returns ElasticBackupPolicy. The ElasticBackupPolicy is - compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackupPolicy] + :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. 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: """ _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) + 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._generate_akv_credentials_initial( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_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, @@ -28986,12 +18227,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.ElasticBackupPolicy, 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), @@ -29006,15 +18244,13 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticBackupPolicy].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.ElasticBackupPolicy]( - 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 @api_version_validation( method_added_on="2025-12-15-preview", @@ -29024,20 +18260,36 @@ def get_long_running_output(pipeline_response): "subscription_id", "resource_group_name", "account_name", - "backup_policy_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def _delete_initial( - self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any + 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, @@ -29052,10 +18304,12 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_elastic_backup_policies_delete_request( + _request = build_buckets_refresh_certificate_request( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_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, @@ -29074,7 +18328,7 @@ def _delete_initial( response = pipeline_response.http_response - if response.status_code not in [202, 204]: + if response.status_code not in [202]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -29087,9 +18341,11 @@ 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")) + 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() @@ -29107,30 +18363,51 @@ def _delete_initial( "subscription_id", "resource_group_name", "account_name", - "backup_policy_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def begin_delete( - self, resource_group_name: str, account_name: str, backup_policy_name: str, **kwargs: Any + 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]: - """Delete the specified Elastic Policy. + """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. :type resource_group_name: str - :param account_name: The name of the ElasticAccount. Required. + :param account_name: The name of the NetApp account. Required. :type account_name: str - :param backup_policy_name: The name of the ElasticBackupPolicy. Required. - :type backup_policy_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: An instance of LROPoller that returns None :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -29143,10 +18420,12 @@ def begin_delete( 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._refresh_certificate_initial( resource_group_name=resource_group_name, account_name=account_name, - backup_policy_name=backup_policy_name, + pool_name=pool_name, + volume_name=volume_name, + bucket_name=bucket_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -29180,131 +18459,15 @@ 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", - "2026-06-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. - - :param resource_group_name: 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: # pylint: disable=docstring-missing-param +class CachesOperations: # pylint: disable=docstring-missing-param """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.netapp.NetAppManagementClient`'s - :attr:`elastic_backups` attribute. + :attr:`caches` attribute. """ def __init__(self, *args, **kwargs) -> None: @@ -29323,36 +18486,44 @@ def __init__(self, *args, **kwargs) -> None: "subscription_id", "resource_group_name", "account_name", - "backup_vault_name", - "backup_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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. + 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 + :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 = { @@ -29366,13 +18537,13 @@ def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ElasticBackup] = kwargs.pop("cls", None) + cls: ClsType[_models.Cache] = kwargs.pop("cls", None) - _request = build_elastic_backups_get_request( + _request = build_caches_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, + cache_name=cache_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -29407,7 +18578,7 @@ def get( if _stream: deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - deserialized = _deserialize(_models.ElasticBackup, response.json()) + deserialized = _deserialize(_models.Cache, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore @@ -29422,28 +18593,36 @@ def get( "subscription_id", "resource_group_name", "account_name", - "backup_vault_name", - "backup_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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]], + pool_name: str, + cache_name: str, + body: Union[_models.Cache, _types.Cache, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -29467,11 +18646,11 @@ def _create_or_update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_backups_create_or_update_request( + _request = build_caches_create_or_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, + cache_name=cache_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -29523,32 +18702,32 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: _models.ElasticBackup, + pool_name: str, + cache_name: str, + body: _models.Cache, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackup]: - """Create an elastic backup under the elastic Backup Vault. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 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.ElasticBackup + :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 ElasticBackup. The ElasticBackup is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup] + :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: """ @@ -29557,32 +18736,32 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: _types.ElasticBackup, + pool_name: str, + cache_name: str, + body: _types.Cache, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackup]: - """Create an elastic backup under the elastic Backup Vault. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 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.ElasticBackup + :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 ElasticBackup. The ElasticBackup is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup] + :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: """ @@ -29591,32 +18770,32 @@ def begin_create_or_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, + cache_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackup]: - """Create an elastic backup under the elastic Backup Vault. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 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 ElasticBackup. The ElasticBackup is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup] + :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: """ @@ -29629,55 +18808,61 @@ def begin_create_or_update( "subscription_id", "resource_group_name", "account_name", - "backup_vault_name", - "backup_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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]], + pool_name: str, + cache_name: str, + body: Union[_models.Cache, _types.Cache, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticBackup]: - """Create an elastic backup under the elastic Backup Vault. + ) -> 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticBackup. The ElasticBackup is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup] + :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] :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) + 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) @@ -29685,8 +18870,8 @@ 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, - backup_name=backup_name, + pool_name=pool_name, + cache_name=cache_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -29699,7 +18884,7 @@ def begin_create_or_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticBackup, response.json()) + deserialized = _deserialize(_models.Cache, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -29717,13 +18902,13 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticBackup].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[_models.ElasticBackup]( + return LROPoller[_models.Cache]( self._client, raw_result, get_long_running_output, polling_method # type: ignore ) @@ -29735,28 +18920,36 @@ def get_long_running_output(pipeline_response): "subscription_id", "resource_group_name", "account_name", - "backup_vault_name", - "backup_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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]], + pool_name: str, + cache_name: str, + body: Union[_models.CacheUpdate, _types.CacheUpdate, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -29780,11 +18973,11 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_elastic_backups_update_request( + _request = build_caches_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, + cache_name=cache_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -29837,32 +19030,32 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: _models.ElasticBackup, + pool_name: str, + cache_name: str, + body: _models.CacheUpdate, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackup]: - """Patch an elastic Backup under the Elastic Backup Vault. + ) -> LROPoller[_models.Cache]: + """Patch 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 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. Required. - :type body: ~azure.mgmt.netapp.models.ElasticBackup + :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 ElasticBackup. The ElasticBackup is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup] + :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: """ @@ -29871,32 +19064,32 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, - body: _types.ElasticBackup, + pool_name: str, + cache_name: str, + body: _types.CacheUpdate, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackup]: - """Patch an elastic Backup under the Elastic Backup Vault. + ) -> LROPoller[_models.Cache]: + """Patch 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 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. Required. - :type body: ~azure.mgmt.netapp.types.ElasticBackup + :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 ElasticBackup. The ElasticBackup is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup] + :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: """ @@ -29905,32 +19098,32 @@ def begin_update( self, resource_group_name: str, account_name: str, - backup_vault_name: str, - backup_name: str, + pool_name: str, + cache_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ElasticBackup]: - """Patch an elastic Backup under the Elastic Backup Vault. + ) -> LROPoller[_models.Cache]: + """Patch 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 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. 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 ElasticBackup. The ElasticBackup is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup] + :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: """ @@ -29943,55 +19136,63 @@ def begin_update( "subscription_id", "resource_group_name", "account_name", - "backup_vault_name", - "backup_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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]], + pool_name: str, + cache_name: str, + body: Union[_models.CacheUpdate, _types.CacheUpdate, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ElasticBackup]: - """Patch an elastic Backup under the Elastic Backup Vault. + ) -> LROPoller[_models.Cache]: + """Patch 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 LROPoller that returns ElasticBackup. The ElasticBackup is compatible - with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ElasticBackup] + :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] :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) + 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) @@ -29999,8 +19200,8 @@ 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, + cache_name=cache_name, body=body, content_type=content_type, cls=lambda x, y, z: x, @@ -30013,7 +19214,7 @@ def begin_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ElasticBackup, response.json()) + deserialized = _deserialize(_models.Cache, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -30031,13 +19232,13 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ElasticBackup].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[_models.ElasticBackup]( + return LROPoller[_models.Cache]( self._client, raw_result, get_long_running_output, polling_method # type: ignore ) @@ -30049,21 +19250,29 @@ def get_long_running_output(pipeline_response): "subscription_id", "resource_group_name", "account_name", - "backup_vault_name", - "backup_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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, cache_name: str, **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -30078,11 +19287,11 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_elastic_backups_delete_request( + _request = build_caches_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, + cache_name=cache_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -30134,33 +19343,41 @@ def _delete_initial( "subscription_id", "resource_group_name", "account_name", - "backup_vault_name", - "backup_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) 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, cache_name: str, **kwargs: Any ) -> LROPoller[None]: - """Delete a ElasticBackup. + """Delete 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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 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 None :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -30176,8 +19393,8 @@ 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, + cache_name=cache_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -30213,46 +19430,53 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @distributed_trace @api_version_validation( - method_added_on="2025-12-15-preview", + method_added_on="2026-01-01", params_added_on={ - "2025-12-15-preview": [ + "2026-01-01": [ "api_version", "subscription_id", "resource_group_name", "account_name", - "backup_vault_name", + "pool_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - 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. + 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 ElasticAccount. Required. + :param account_name: The name of the NetApp account. 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.paging.ItemPaged[~azure.mgmt.netapp.models.ElasticBackup] + :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.ElasticBackup]] = kwargs.pop("cls", None) + cls: ClsType[List[_models.Cache]] = kwargs.pop("cls", None) error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -30265,10 +19489,10 @@ def list_by_vault( def prepare_request(next_link=None): if not next_link: - _request = build_elastic_backups_list_by_vault_request( + _request = build_caches_list_request( resource_group_name=resource_group_name, account_name=account_name, - backup_vault_name=backup_vault_name, + pool_name=pool_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -30309,7 +19533,7 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() list_of_elem = _deserialize( - List[_models.ElasticBackup], + List[_models.Cache], deserialized.get("value", []), ) if cls: @@ -30333,302 +19557,10 @@ def get_next(next_link=None): ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - return pipeline_response - - return ItemPaged(get_next, extract_data) - - -class ActiveDirectoryConfigsOperations: # pylint: disable=docstring-missing-param - """ - .. 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", - "2026-06-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", - "2026-06-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: - """ - - @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. - - :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: - """ - - @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. - - :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: - """ - + return pipeline_response + + return ItemPaged(get_next, extract_data) + @distributed_trace @api_version_validation( method_added_on="2025-12-15-preview", @@ -30637,94 +19569,106 @@ def begin_create_or_update( "api_version", "subscription_id", "resource_group_name", - "active_directory_config_name", - "content_type", + "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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - 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. + 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. :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 LROPoller that returns ActiveDirectoryConfig. The ActiveDirectoryConfig - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig] + :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: """ - _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)) - 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) + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} - 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 + cls: ClsType[_models.PeeringPassphrases] = kwargs.pop("cls", None) + _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) - 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.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 - ) + deserialized = _deserialize(_models.PeeringPassphrases, 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", @@ -30733,25 +19677,37 @@ def get_long_running_output(pipeline_response): "api_version", "subscription_id", "resource_group_name", - "active_directory_config_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def _update_initial( + def _pool_change_initial( self, resource_group_name: str, - active_directory_config_name: str, - body: Union[_models.ActiveDirectoryConfigUpdate, _types.ActiveDirectoryConfigUpdate, IO[bytes]], + account_name: str, + pool_name: str, + cache_name: str, + body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -30775,9 +19731,11 @@ def _update_initial( else: _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_active_directory_configs_update_request( + _request = build_caches_pool_change_request( resource_group_name=resource_group_name, - active_directory_config_name=active_directory_config_name, + account_name=account_name, + pool_name=pool_name, + cache_name=cache_name, subscription_id=self._config.subscription_id, content_type=content_type, api_version=self._config.api_version, @@ -30812,9 +19770,6 @@ 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")) @@ -30826,86 +19781,104 @@ def _update_initial( return deserialized # type: ignore @overload - def begin_update( + def begin_pool_change( self, resource_group_name: str, - active_directory_config_name: str, - body: _models.ActiveDirectoryConfigUpdate, + account_name: str, + pool_name: str, + cache_name: str, + body: _models.PoolChangeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ActiveDirectoryConfig]: - """Patch the specified active directory configuration. + ) -> 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 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 + :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 ActiveDirectoryConfig. The ActiveDirectoryConfig - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig] + :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_update( + def begin_pool_change( self, resource_group_name: str, - active_directory_config_name: str, - body: _types.ActiveDirectoryConfigUpdate, + account_name: str, + pool_name: str, + cache_name: str, + body: _types.PoolChangeRequest, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ActiveDirectoryConfig]: - """Patch the specified active directory configuration. + ) -> 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 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 + :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 ActiveDirectoryConfig. The ActiveDirectoryConfig - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig] + :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_update( + def begin_pool_change( self, resource_group_name: str, - active_directory_config_name: str, + account_name: str, + pool_name: str, + cache_name: str, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.ActiveDirectoryConfig]: - """Patch the specified active directory configuration. + ) -> 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 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. + :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 ActiveDirectoryConfig. The ActiveDirectoryConfig - is compatible with MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.netapp.models.ActiveDirectoryConfig] + :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: """ @@ -30917,55 +19890,73 @@ def begin_update( "api_version", "subscription_id", "resource_group_name", - "active_directory_config_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def begin_update( + def begin_pool_change( self, resource_group_name: str, - active_directory_config_name: str, - body: Union[_models.ActiveDirectoryConfigUpdate, _types.ActiveDirectoryConfigUpdate, IO[bytes]], + account_name: str, + pool_name: str, + cache_name: str, + body: Union[_models.PoolChangeRequest, _types.PoolChangeRequest, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.ActiveDirectoryConfig]: - """Patch the specified active directory configuration. + ) -> 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 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] + :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] :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) + 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( + raw_result = self._pool_change_initial( resource_group_name=resource_group_name, - active_directory_config_name=active_directory_config_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, @@ -30978,7 +19969,7 @@ def begin_update( def get_long_running_output(pipeline_response): response = pipeline_response.http_response - deserialized = _deserialize(_models.ActiveDirectoryConfig, response.json()) + deserialized = _deserialize(_models.Cache, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized @@ -30996,13 +19987,13 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.ActiveDirectoryConfig].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[_models.ActiveDirectoryConfig]( + return LROPoller[_models.Cache]( self._client, raw_result, get_long_running_output, polling_method # type: ignore ) @@ -31013,20 +20004,31 @@ def get_long_running_output(pipeline_response): "api_version", "subscription_id", "resource_group_name", - "active_directory_config_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def _delete_initial( - self, resource_group_name: str, active_directory_config_name: str, **kwargs: Any + 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, @@ -31041,9 +20043,11 @@ def _delete_initial( cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_active_directory_configs_delete_request( + _request = build_caches_reset_smb_password_request( resource_group_name=resource_group_name, - active_directory_config_name=active_directory_config_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, @@ -31062,7 +20066,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]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -31094,43 +20098,61 @@ def _delete_initial( "api_version", "subscription_id", "resource_group_name", - "active_directory_config_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", + "2026-06-01", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) - def begin_delete( - self, resource_group_name: str, active_directory_config_name: str, **kwargs: Any - ) -> LROPoller[None]: - """Delete the specified Active Directory configuration. + 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. :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] + :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 {} - 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._delete_initial( + raw_result = self._reset_smb_password_initial( resource_group_name=resource_group_name, - active_directory_config_name=active_directory_config_name, + account_name=account_name, + pool_name=pool_name, + cache_name=cache_name, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -31139,9 +20161,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), @@ -31156,229 +20181,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.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 - @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", - "2026-06-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", - "2026-06-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) - - 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) + return LROPoller[_models.Cache]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) class NetAppResourceQuotaLimitsOperations: # pylint: disable=docstring-missing-param @@ -32087,6 +20898,9 @@ def get_long_running_output(pipeline_response): "2026-04-15-preview", "2026-05-15-preview", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def _update_initial( @@ -32268,6 +21082,9 @@ def begin_update( "2026-04-15-preview", "2026-05-15-preview", "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", ], ) def begin_update( @@ -33390,7 +22207,14 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- 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", "2026-06-15-preview"], + api_versions_list=[ + "2026-04-15-preview", + "2026-05-15-preview", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", + ], ) def _refresh_ldap_bind_password_initial( self, resource_group_name: str, account_name: str, **kwargs: Any @@ -33461,7 +22285,14 @@ def _refresh_ldap_bind_password_initial( 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", "2026-06-15-preview"], + api_versions_list=[ + "2026-04-15-preview", + "2026-05-15-preview", + "2026-06-15-preview", + "2026-07-01", + "2026-07-15-preview", + "2026-08-01", + ], ) def begin_refresh_ldap_bind_password( self, resource_group_name: str, account_name: str, **kwargs: Any 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 b4a2d133e57a..43a790abc80d 100644 --- a/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/types.py +++ b/sdk/netapp/azure-mgmt-netapp/azure/mgmt/netapp/types.py @@ -33,22 +33,7 @@ CoolAccessTieringPolicy, CreatedByType, CredentialsStatus, - DayOfWeek, DesiredRansomwareProtectionState, - ElasticBackupPolicyState, - ElasticBackupType, - ElasticKeyVaultStatus, - ElasticNfsv3Access, - ElasticNfsv4Access, - ElasticPoolEncryptionKeySource, - ElasticProtocolType, - ElasticResourceAvailabilityStatus, - ElasticRootAccess, - ElasticServiceLevel, - ElasticSmbEncryption, - ElasticUnixAccessRule, - ElasticVolumePolicyEnforcement, - ElasticVolumeRestorationState, EnableSubvolumes, EnableWriteBackState, EncryptionKeySource, @@ -62,7 +47,6 @@ KerberosState, KeySource, KeyVaultStatus, - LargeVolumeType, LdapServerType, LdapState, ManagedServiceIdentityType, @@ -71,7 +55,6 @@ NetAppProvisioningState, NetworkFeatures, OnCertificateConflictAction, - PolicyStatus, ProtocolTypes, QosType, QuotaType, @@ -84,11 +67,8 @@ SmbAccessBasedEnumeration, SmbEncryptionState, SmbNonBrowsable, - SnapshotDirectoryVisibility, - SnapshotUsage, VolumeLanguage, VolumeReplicationRelationshipStatus, - VolumeSize, VolumeStorageToNetworkProximity, ) @@ -117,6 +97,30 @@ class AccountEncryption(TypedDict, total=False): """Identity used to authenticate to KeyVault. Applicable if keySource is 'Microsoft.KeyVault'.""" +class AccountEncryptionPatch(TypedDict, total=False): + """Encryption settings for PATCH operations (no default values). + + :ivar keySource: The encryption keySource (provider). Possible values (case-insensitive): + Microsoft.NetApp, Microsoft.KeyVault. Known values are: "Microsoft.NetApp" and + "Microsoft.KeyVault". + :vartype keySource: Union[str, "KeySource"] + :ivar keyVaultProperties: Properties provided by KeVault. Applicable if keySource is + 'Microsoft.KeyVault'. + :vartype keyVaultProperties: "KeyVaultPropertiesPatch" + :ivar identity: Identity used to authenticate to KeyVault. Applicable if keySource is + 'Microsoft.KeyVault'. + :vartype identity: "EncryptionIdentityPatch" + """ + + 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: "KeyVaultPropertiesPatch" + """Properties provided by KeVault. Applicable if keySource is 'Microsoft.KeyVault'.""" + identity: "EncryptionIdentityPatch" + """Identity used to authenticate to KeyVault. Applicable if keySource is 'Microsoft.KeyVault'.""" + + class AccountProperties(TypedDict, total=False): """NetApp account properties. @@ -124,8 +128,6 @@ class AccountProperties(TypedDict, total=False): :vartype provisioningState: str :ivar activeDirectories: Active Directories. :vartype activeDirectories: list["ActiveDirectory"] - :ivar entraIdConfig: Entra ID configuration for the account. - :vartype entraIdConfig: "EntraIdConfig" :ivar encryption: Encryption settings. :vartype encryption: "AccountEncryption" :ivar disableShowmount: Shows the status of disableShowmount for all volumes under the @@ -145,8 +147,6 @@ class AccountProperties(TypedDict, total=False): """Azure lifecycle management.""" activeDirectories: list["ActiveDirectory"] """Active Directories.""" - entraIdConfig: "EntraIdConfig" - """Entra ID configuration for the account.""" encryption: "AccountEncryption" """Encryption settings.""" disableShowmount: Optional[bool] @@ -164,27 +164,23 @@ class AccountPropertiesPatch(TypedDict, total=False): """NetApp account patch properties. :ivar activeDirectories: Active Directories. - :vartype activeDirectories: list["ActiveDirectory"] + :vartype activeDirectories: list["ActiveDirectoryPatch"] :ivar encryption: Encryption settings. - :vartype encryption: "AccountEncryption" + :vartype encryption: "AccountEncryptionPatch" :ivar nfsV4IDDomain: 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 nfsV4IDDomain: str - :ivar entraIdConfig: Entra ID configuration for the account. - :vartype entraIdConfig: "EntraIdConfigPatch" :ivar ldapConfiguration: LDAP Configuration for the account. :vartype ldapConfiguration: "LdapConfigurationPatch" """ - activeDirectories: list["ActiveDirectory"] + activeDirectories: list["ActiveDirectoryPatch"] """Active Directories.""" - encryption: "AccountEncryption" + encryption: "AccountEncryptionPatch" """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.""" @@ -313,196 +309,21 @@ 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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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. +class ActiveDirectoryPatch(TypedDict, total=False): + """Active Directory settings for PATCH operations (no default values). - :ivar userName: A domain user account with permission to create machine accounts. - :vartype userName: str - :ivar dns: An array of DNS server IP addresses(IPv4 only) for the Active Directory. - :vartype dns: list[str] - :ivar smbServerName: NetBIOS name of the SMB server. This name will be registered as a computer - account in the AD and used to mount volumes. - :vartype smbServerName: str - :ivar organizationalUnit: The Organizational Unit (OU) within the Windows Active Directory. - :vartype organizationalUnit: str - :ivar site: The Active Directory site the service will limit Domain Controller discovery to. - Required. - :vartype site: str - :ivar backupOperators: Users to be added to the Built-in Backup Operator active directory - group. A list of unique usernames without domain specifier. - :vartype backupOperators: 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 securityOperators: 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 securityOperators: list[str] - :ivar activeDirectoryStatus: Status of the Active Directory. Known values are: "Created", - "InUse", "Deleted", "Error", and "Updating". - :vartype activeDirectoryStatus: Union[str, "ActiveDirectoryStatus"] - :ivar provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: Union[str, "NetAppProvisioningState"] - :ivar domain: Name of the Active Directory domain. Required. + :ivar activeDirectoryId: Id of the Active Directory. + :vartype activeDirectoryId: str + :ivar username: A domain user account with permission to create machine accounts. + :vartype username: str + :ivar password: Plain text password of Active Directory domain administrator, value is masked + in the response. + :vartype password: str + :ivar domain: Name of the Active Directory domain. :vartype domain: str - :ivar secretPassword: Access password from Azure KeyVault Secrets to connect Active Directory. - Required. - :vartype secretPassword: "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 userName: A domain user account with permission to create machine accounts. - :vartype userName: str - :ivar dns: An array of DNS server IP addresses(IPv4 only) for the Active Directory. - :vartype dns: list[str] + :ivar dns: Comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory + domain. + :vartype dns: str :ivar smbServerName: NetBIOS name of the SMB server. This name will be registered as a computer account in the AD and used to mount volumes. :vartype smbServerName: str @@ -516,20 +337,49 @@ class ActiveDirectoryConfigUpdateProperties(TypedDict, total=False): :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 securityOperators: Domain Users in the Active directory to be given SecurityPrivilege + :ivar kdcIP: kdc server IP address for the active directory machine. This optional parameter is + used only while creating kerberos volume. + :vartype kdcIP: str + :ivar adName: Name of the active directory machine. This optional parameter is used only while + creating kerberos volume. + :vartype adName: str + :ivar serverRootCACertificate: When LDAP over SSL/TLS is enabled, the LDAP client is required + to have base64 encoded Active Directory Certificate Service's self-signed root CA certificate, + this optional parameter is used only for dual protocol with LDAP user-mapping volumes. + :vartype serverRootCACertificate: str + :ivar aesEncryption: If enabled, AES encryption will be enabled for SMB communication. + :vartype aesEncryption: bool + :ivar ldapSigning: Specifies whether or not the LDAP traffic needs to be signed. + :vartype ldapSigning: bool + :ivar securityOperators: Domain Users in the Active directory to be given SeSecurityPrivilege privilege (Needed for SMB Continuously available shares for SQL). A list of unique usernames without domain specifier. :vartype securityOperators: list[str] - :ivar domain: Name of the Active Directory domain. - :vartype domain: str - :ivar secretPassword: Access password from Azure KeyVault Secrets to connect Active Directory. - :vartype secretPassword: "SecretPassword" + :ivar ldapOverTLS: Specifies whether or not the LDAP traffic needs to be secured via TLS. + :vartype ldapOverTLS: bool + :ivar allowLocalNfsUsersWithLdap: If enabled, NFS client local users can also (in addition to + LDAP users) access the NFS volumes. + :vartype allowLocalNfsUsersWithLdap: bool + :ivar encryptDCConnections: If enabled, Traffic between the SMB server to Domain Controller + (DC) will be encrypted. + :vartype encryptDCConnections: bool + :ivar ldapSearchScope: LDAP Search scope options. + :vartype ldapSearchScope: "LdapSearchScopeOpt" + :ivar preferredServersForLdapClient: Comma separated list of IPv4 addresses of preferred + servers for LDAP client. At most two comma separated IPv4 addresses can be passed. + :vartype preferredServersForLdapClient: str """ - userName: str + activeDirectoryId: Optional[str] + """Id of the Active Directory.""" + 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.""" + password: str + """Plain text password of Active Directory domain administrator, value is masked in the response.""" + domain: str + """Name of the Active Directory domain.""" + dns: str + """Comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory domain.""" 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.""" @@ -543,13 +393,34 @@ class ActiveDirectoryConfigUpdateProperties(TypedDict, total=False): administrators: list[str] """Users to be added to the Built-in Administrators active directory group. A list of unique usernames without domain specifier.""" + kdcIP: str + """kdc server IP address for the active directory machine. This optional parameter is used only + while creating kerberos volume.""" + adName: str + """Name of the active directory machine. This optional parameter is used only while creating + kerberos volume.""" + serverRootCACertificate: str + """When LDAP over SSL/TLS is enabled, the LDAP client is required to have base64 encoded Active + Directory Certificate Service's self-signed root CA certificate, this optional parameter is + used only for dual protocol with LDAP user-mapping volumes.""" + aesEncryption: bool + """If enabled, AES encryption will be enabled for SMB communication.""" + ldapSigning: bool + """Specifies whether or not the LDAP traffic needs to be signed.""" securityOperators: list[str] - """Domain Users in the Active directory to be given SecurityPrivilege privilege (Needed for SMB + """Domain Users in the Active directory to be given SeSecurityPrivilege 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.""" + ldapOverTLS: bool + """Specifies whether or not the LDAP traffic needs to be secured via TLS.""" + allowLocalNfsUsersWithLdap: bool + """If enabled, NFS client local users can also (in addition to LDAP users) access the NFS volumes.""" + encryptDCConnections: bool + """If enabled, Traffic between the SMB server to Domain Controller (DC) will be encrypted.""" + ldapSearchScope: "LdapSearchScopeOpt" + """LDAP Search scope options.""" + preferredServersForLdapClient: str + """Comma separated list of IPv4 addresses of preferred servers for LDAP client. At most two comma + separated IPv4 addresses can be passed.""" class AuthorizeRequest(TypedDict, total=False): @@ -593,8 +464,8 @@ class AzureKeyVaultDetails(TypedDict, total=False): """Specifies the Azure Key Vault settings for storing the bucket credentials.""" -class ProxyResource(Resource): - """Proxy Resource. +class Resource(TypedDict, total=False): + """Resource. :ivar id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. @@ -609,12 +480,40 @@ class ProxyResource(Resource): :vartype systemData: "SystemData" """ - -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}. + 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. + + :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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype systemData: "SystemData" + """ + + +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 @@ -654,6 +553,32 @@ class BackupPatchProperties(TypedDict, total=False): """Label for backup.""" +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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype systemData: "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 BackupPolicy(TrackedResource): """Backup policy information. @@ -1047,8 +972,8 @@ class BucketPatchProperties(TypedDict, total=False): 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 fileSystemUser: "FileSystemUser" - :ivar provisioningState: Provisioning state of the resource. Known values are: "Accepted", - "Creating", "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". + :ivar provisioningState: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Accepted", "Creating", "Patching", "Updating", "Deleting", and "Moving". :vartype provisioningState: Union[str, "NetAppProvisioningState"] :ivar server: Properties of the server managing the lifecycle of volume buckets. :vartype server: "BucketServerPatchProperties" @@ -1076,8 +1001,8 @@ class BucketPatchProperties(TypedDict, total=False): 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.""" provisioningState: Union[str, "NetAppProvisioningState"] - """Provisioning state of the resource. Known values are: \"Accepted\", \"Creating\", \"Patching\", - \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\".""" + """Provisioning state of the resource. Known values are: \"Succeeded\", \"Failed\", \"Canceled\", + \"Accepted\", \"Creating\", \"Patching\", \"Updating\", \"Deleting\", and \"Moving\".""" server: "BucketServerPatchProperties" """Properties of the server managing the lifecycle of volume buckets.""" permissions: Union[str, "BucketPatchPermissions"] @@ -1109,8 +1034,8 @@ class BucketProperties(TypedDict, total=False): 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 fileSystemUser: "FileSystemUser" - :ivar provisioningState: Provisioning state of the resource. Known values are: "Accepted", - "Creating", "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". + :ivar provisioningState: Provisioning state of the resource. Known values are: "Succeeded", + "Failed", "Canceled", "Accepted", "Creating", "Patching", "Updating", "Deleting", and "Moving". :vartype provisioningState: Union[str, "NetAppProvisioningState"] :ivar status: The bucket credentials status. There states: @@ -1149,8 +1074,8 @@ class BucketProperties(TypedDict, total=False): 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.""" provisioningState: Union[str, "NetAppProvisioningState"] - """Provisioning state of the resource. Known values are: \"Accepted\", \"Creating\", \"Patching\", - \"Updating\", \"Deleting\", \"Moving\", \"Failed\", and \"Succeeded\".""" + """Provisioning state of the resource. Known values are: \"Succeeded\", \"Failed\", \"Canceled\", + \"Accepted\", \"Creating\", \"Patching\", \"Updating\", \"Deleting\", and \"Moving\".""" status: Union[str, "CredentialsStatus"] """The bucket credentials status. There states: @@ -1624,1323 +1549,128 @@ class CertificateAkvDetails(TypedDict, total=False): the bucket certificate. :vartype certificateKeyVaultUri: str :ivar certificateName: The name of the bucket server certificate stored in the Azure Key Vault. - :vartype certificateName: str - :ivar userAssignedIdentity: 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 userAssignedIdentity: 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 keyVaultUri: The URI of the key vault/managed HSM that should be used for encryption. - Required. - :vartype keyVaultUri: str - :ivar keyName: The name of the key that should be used for encryption. Required. - :vartype keyName: str - :ivar keyVaultResourceId: Azure resource ID of the key vault/managed HSM that should be used - for encryption. - :vartype keyVaultResourceId: str - :ivar keyVaultPrivateEndpoints: 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 keyVaultPrivateEndpoints: 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 newZone: Availability zone to move Zone Redundant elastic capacity pool to. Required. - :vartype newZone: 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 filePath: A unique file path for the volume. Used when creating mount targets. This needs - to be unique within the elastic capacity pool. Required. - :vartype filePath: 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 credentialsKeyVaultUri: The base URI of the Azure Key Vault that is used when storing the - bucket credentials. - :vartype credentialsKeyVaultUri: str - :ivar secretName: 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 secretName: str - :ivar userAssignedIdentity: 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 userAssignedIdentity: 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 snapshotsToKeep: Daily snapshot count to keep. - :vartype snapshotsToKeep: 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 usedBytes: Resource size in bytes, current storage usage for the volume in bytes. - :vartype usedBytes: 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 resourceId: The resource ID of the remote volume. - :vartype resourceId: str - :ivar replicationType: Indicates whether the replication is cross zone or cross region. Known - values are: "CrossRegionReplication" and "CrossZoneReplication". - :vartype replicationType: 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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 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: "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 provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: 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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 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: "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 provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: Union[str, "NetAppProvisioningState"] - :ivar dailyBackupsToKeep: Daily backups count to keep. - :vartype dailyBackupsToKeep: int - :ivar weeklyBackupsToKeep: Weekly backups count to keep. - :vartype weeklyBackupsToKeep: int - :ivar monthlyBackupsToKeep: Monthly backups count to keep. - :vartype monthlyBackupsToKeep: int - :ivar assignedVolumesCount: The number of volumes currently using this Backup Policy. - :vartype assignedVolumesCount: int - :ivar policyState: The property to identify whether Backup Policy is enabled or not. Known - values are: "Enabled" and "Disabled". - :vartype policyState: 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 dailyBackupsToKeep: Daily backups count to keep. - :vartype dailyBackupsToKeep: int - :ivar weeklyBackupsToKeep: Weekly backups count to keep. - :vartype weeklyBackupsToKeep: int - :ivar monthlyBackupsToKeep: Monthly backups count to keep. - :vartype monthlyBackupsToKeep: int - :ivar policyState: The property to identify whether Backup Policy is enabled or not. Known - values are: "Enabled" and "Disabled". - :vartype policyState: 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 creationDate: The creation date of the backup. - :vartype creationDate: str - :ivar snapshotCreationDate: The snapshot creation date of the backup. - :vartype snapshotCreationDate: str - :ivar completionDate: The completion date of the backup. - :vartype completionDate: str - :ivar provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: Union[str, "NetAppProvisioningState"] - :ivar size: Size of backup in bytes. - :vartype size: int - :ivar label: Label for backup. - :vartype label: str - :ivar backupType: Type of backup Manual or Scheduled. Known values are: "Manual" and - "Scheduled". - :vartype backupType: Union[str, "ElasticBackupType"] - :ivar failureReason: Failure reason. - :vartype failureReason: str - :ivar elasticVolumeResourceId: ResourceId used to identify the Elastic Volume. Required. - :vartype elasticVolumeResourceId: str - :ivar 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". - :vartype snapshotUsage: Union[str, "SnapshotUsage"] - :ivar elasticSnapshotResourceId: 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 elasticSnapshotResourceId: str - :ivar elasticBackupPolicyResourceId: ResourceId used to identify the elastic backup policy. - :vartype elasticBackupPolicyResourceId: str - :ivar volumeSize: Specifies if the backup is for a large volume. Known values are: "Large" and - "Regular". - :vartype volumeSize: 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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 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: "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 provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: 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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 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: "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 serviceLevel: The service level of the elastic capacity pool. Required. "ZoneRedundant" - :vartype serviceLevel: Union[str, "ElasticServiceLevel"] - :ivar provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: Union[str, "NetAppProvisioningState"] - :ivar encryption: Encryption settings. - :vartype encryption: "ElasticEncryptionConfiguration" - :ivar totalThroughputMibps: Total throughput of the pool in MiB/s. - :vartype totalThroughputMibps: float - :ivar subnetResourceId: 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 subnetResourceId: str - :ivar currentZone: Indicates the current zone of the pool. This can be changed for - zoneRedundant service level pool with the changeZone action. - :vartype currentZone: str - :ivar availabilityStatus: Current availability status of the resource. Known values are: - "Online" and "Offline". - :vartype availabilityStatus: Union[str, "ElasticResourceAvailabilityStatus"] - :ivar activeDirectoryConfigResourceId: The Azure Resource URI for an Active Directory - configuration. This is used by all the SMB volumes within the pool. - :vartype activeDirectoryConfigResourceId: 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 activeDirectoryConfigResourceId: The Azure Resource URI for an Active Directory - configuration. This is used by all the SMB volumes within the pool. - :vartype activeDirectoryConfigResourceId: 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 keySource: The encryption keySource (provider). Possible values (case-insensitive): - Microsoft.NetApp, Microsoft.KeyVault. Known values are: "Microsoft.NetApp" and - "Microsoft.KeyVault". - :vartype keySource: Union[str, "KeySource"] - :ivar keyVaultProperties: Properties provided by KeyVault. Applicable if keySource is - 'Microsoft.KeyVault'. - :vartype keyVaultProperties: "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 elasticPoolEncryptionKeySource: Pool Encryption Key Source. Required. Known values are: - "NetApp" and "KeyVault". - :vartype elasticPoolEncryptionKeySource: Union[str, "ElasticPoolEncryptionKeySource"] - :ivar keyVaultPrivateEndpointResourceId: The resource ID of private endpoint for KeyVault. It - must reside in the same VNET as the volume. Only applicable if encryptionKeySource = - 'Microsoft.KeyVault'. Required. - :vartype keyVaultPrivateEndpointResourceId: 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 principalId: The principal ID (object ID) of the identity used to authenticate with key - vault. Read-only. - :vartype principalId: str - :ivar userAssignedIdentity: 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 userAssignedIdentity: str - :ivar federatedClientId: ClientId of the multi-tenant Entra ID Application. Used to access - cross-tenant keyvaults. - :vartype federatedClientId: 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 ruleIndex: 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 ruleIndex: int - :ivar unixAccessRule: 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 unixAccessRule: 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 allowedClients: Client ingress specification for the export policy as list of IPv4 CIDRs, - IPv4 host addresses and host names. - :vartype allowedClients: list[str] - :ivar rootAccess: Indicates whether root access to the volume is granted to clients affected by - this rule. Known values are: "Enabled" and "Disabled". - :vartype rootAccess: 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 keyVaultUri: The Uri of KeyVault. - :vartype keyVaultUri: str - :ivar keyName: The name of KeyVault key. - :vartype keyName: str - :ivar keyVaultResourceId: The resource ID of KeyVault. - :vartype keyVaultResourceId: 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 ipAddress: The mount target's IPv4 address, used to mount the volume. - :vartype ipAddress: str - :ivar smbServerFqdn: The SMB server's Fully Qualified Domain Name, FQDN. - :vartype smbServerFqdn: 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 smbEncryption: 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 smbEncryption: 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 smbEncryption: 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 smbEncryption: 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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 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: "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 snapshotsToKeep: Daily snapshot count to keep. - :vartype snapshotsToKeep: 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 snapshotsToKeep: Hourly snapshot count to keep. - :vartype snapshotsToKeep: 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 snapshotsToKeep: Monthly snapshot count to keep. - :vartype snapshotsToKeep: int - :ivar daysOfMonth: Indicates which days of the month snapshot (1-31) should be taken, accepts a - list of integers. - :vartype daysOfMonth: 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 hourlySchedule: Schedule for hourly snapshots. - :vartype hourlySchedule: "ElasticSnapshotPolicyHourlySchedule" - :ivar dailySchedule: Schedule for daily snapshots. - :vartype dailySchedule: "ElasticSnapshotPolicyDailySchedule" - :ivar weeklySchedule: Schedule for weekly snapshots. - :vartype weeklySchedule: "ElasticSnapshotPolicyWeeklySchedule" - :ivar monthlySchedule: Schedule for monthly snapshots. - :vartype monthlySchedule: "ElasticSnapshotPolicyMonthlySchedule" - :ivar policyStatus: Configures if the snapshot policy is enabled on the volumes connected to - the policy. Known values are: "Enabled" and "Disabled". - :vartype policyStatus: Union[str, "PolicyStatus"] - :ivar provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: 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 hourlySchedule: Schedule for hourly snapshots. - :vartype hourlySchedule: "ElasticSnapshotPolicyHourlySchedule" - :ivar dailySchedule: Schedule for daily snapshots. - :vartype dailySchedule: "ElasticSnapshotPolicyDailySchedule" - :ivar weeklySchedule: Schedule for weekly snapshots. - :vartype weeklySchedule: "ElasticSnapshotPolicyWeeklySchedule" - :ivar monthlySchedule: Schedule for monthly snapshots. - :vartype monthlySchedule: "ElasticSnapshotPolicyMonthlySchedule" - :ivar policyStatus: Configures if the snapshot policy is enabled on the volumes connected to - the policy. Known values are: "Enabled" and "Disabled". - :vartype policyStatus: 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 snapshotsToKeep: Weekly snapshot count to keep. - :vartype snapshotsToKeep: 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 provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: 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 systemData: Azure Resource Manager metadata containing createdBy and modifiedBy - information. - :vartype systemData: "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 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: "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 elasticBackupPolicyResourceId: ResourceId used to identify Elastic Backup Policy. - :vartype elasticBackupPolicyResourceId: str - :ivar policyEnforcement: The property to decide policy is enforced or not on the volume. Known - values are: "Enforced" and "NotEnforced". - :vartype policyEnforcement: Union[str, "ElasticVolumePolicyEnforcement"] - :ivar elasticBackupVaultResourceId: ResourceId used to identify Elastic Backup Vault. - :vartype elasticBackupVaultResourceId: 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" + :vartype certificateName: str """ - snapshot: "ElasticVolumeSnapshotProperties" - """Used to apply a snapshot policy to a volume.""" - backup: "ElasticVolumeBackupProperties" - """Used to configure backups on an elastic volume.""" + 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.""" -class ElasticVolumeDataProtectionProperties(TypedDict, total=False): - """Data protection configuration option for the volume, including snapshot policies and backup. +class ChangeKeyVault(TypedDict, total=False): + """Change key vault request. - :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" + :ivar keyVaultUri: The URI of the key vault/managed HSM that should be used for encryption. + Required. + :vartype keyVaultUri: str + :ivar keyName: The name of the key that should be used for encryption. Required. + :vartype keyName: str + :ivar keyVaultResourceId: Azure resource ID of the key vault/managed HSM that should be used + for encryption. + :vartype keyVaultResourceId: str + :ivar keyVaultPrivateEndpoints: 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 keyVaultPrivateEndpoints: list["KeyVaultPrivateEndpoint"] """ - snapshot: "ElasticVolumeSnapshotProperties" - """Used to apply a snapshot policy to a volume.""" - backup: "ElasticVolumeBackupProperties" - """Used to configure backups on an elastic volume.""" + 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 ElasticVolumeProperties(TypedDict, total=False): - """Elastic Volume properties. +class CifsUser(TypedDict, total=False): + """The effective CIFS username when accessing the volume data. - :ivar filePath: A unique file path for the volume. Used when creating mount targets. This needs - to be unique within the elastic capacity pool. Required. - :vartype filePath: 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 exportPolicy: Set of export policy rules. - :vartype exportPolicy: "ElasticExportPolicy" - :ivar protocolTypes: Set of support protocol types for the elastic volume. Required. - :vartype protocolTypes: list[Union[str, "ElasticProtocolType"]] - :ivar provisioningState: Azure lifecycle management. Known values are: "Accepted", "Creating", - "Patching", "Updating", "Deleting", "Moving", "Failed", and "Succeeded". - :vartype provisioningState: Union[str, "NetAppProvisioningState"] - :ivar availabilityStatus: Current availability status of the resource. Known values are: - "Online" and "Offline". - :vartype availabilityStatus: Union[str, "ElasticResourceAvailabilityStatus"] - :ivar snapshotResourceId: Resource identifier used to identify the Elastic Snapshot. - :vartype snapshotResourceId: str - :ivar mountTargets: List of mount targets that can be used to mount this volume. - :vartype mountTargets: list["ElasticMountTargetProperties"] - :ivar dataProtection: Data protection configuration option for the volume, including snapshot - policies and backup. - :vartype dataProtection: "ElasticVolumeDataProtectionProperties" - :ivar 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". - :vartype snapshotDirectoryVisibility: Union[str, "SnapshotDirectoryVisibility"] - :ivar smbProperties: SMB Properties. - :vartype smbProperties: "ElasticSmbProperties" - :ivar backupResourceId: Resource identifier used to identify the Elastic Backup. - :vartype backupResourceId: str - :ivar restorationState: The current state of the restoration process. Known values are: - "Restoring", "Restored", and "Failed". - :vartype restorationState: Union[str, "ElasticVolumeRestorationState"] + :ivar username: The CIFS user's username. + :vartype username: 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.""" - 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 snapshotResourceId: Resource identifier used to identify the Elastic Snapshot. - :vartype snapshotResourceId: str - """ + username: str + """The CIFS user's username.""" - 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. -class ElasticVolumeSnapshotProperties(TypedDict, total=False): - """Elastic Volume Snapshot Properties. + :ivar credentialsKeyVaultUri: The base URI of the Azure Key Vault that is used when storing the + bucket credentials. + :vartype credentialsKeyVaultUri: str + :ivar secretName: The name of the secret stored in Azure Key Vault. The associated key pair has + the following structure: - :ivar snapshotPolicyResourceId: Snapshot Policy ResourceId. - :vartype snapshotPolicyResourceId: str + { + "access_key_id": "", + "secret_access_key": "" + }. + :vartype secretName: str """ - snapshotPolicyResourceId: str - """Snapshot Policy ResourceId.""" + 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\": \"\" + }.""" -class ElasticVolumeUpdate(TypedDict, total=False): - """The type used for update operations of the ElasticVolume. +class DailySchedule(TypedDict, total=False): + """Daily Schedule properties. - :ivar tags: Resource tags. - :vartype tags: dict[str, str] - :ivar properties: The resource-specific properties for this resource. - :vartype properties: "ElasticVolumeUpdateProperties" + :ivar snapshotsToKeep: Daily snapshot count to keep. + :vartype snapshotsToKeep: 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 usedBytes: Resource size in bytes, current storage usage for the volume in bytes. + :vartype usedBytes: int """ - tags: dict[str, str] - """Resource tags.""" - properties: "ElasticVolumeUpdateProperties" - """The resource-specific properties for this resource.""" + 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 ElasticVolumeUpdateProperties(TypedDict, total=False): - """The updatable properties of the ElasticVolume. +class DestinationReplication(TypedDict, total=False): + """Destination replication properties. - :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 exportPolicy: Set of export policy rules. - :vartype exportPolicy: "ElasticExportPolicy" - :ivar dataProtection: Data protection configuration option for the volume, including snapshot - policies and backup. - :vartype dataProtection: "ElasticVolumeDataProtectionPatchProperties" - :ivar 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". - :vartype snapshotDirectoryVisibility: Union[str, "SnapshotDirectoryVisibility"] - :ivar smbProperties: SMB Properties. - :vartype smbProperties: "ElasticSmbPatchProperties" + :ivar resourceId: The resource ID of the remote volume. + :vartype resourceId: str + :ivar replicationType: Indicates whether the replication is cross zone or cross region. Known + values are: "CrossRegionReplication" and "CrossZoneReplication". + :vartype replicationType: 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 """ - 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.""" + 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 EncryptionIdentity(TypedDict, total=False): @@ -2968,6 +1698,26 @@ class EncryptionIdentity(TypedDict, total=False): """ClientId of the multi-tenant Entra ID Application. Used to access cross-tenant keyvaults.""" +class EncryptionIdentityPatch(TypedDict, total=False): + """Identity used to authenticate with key vault for PATCH operations. + + :ivar userAssignedIdentity: 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 userAssignedIdentity: str + :ivar federatedClientId: ClientId of the multi-tenant Entra ID Application. Used to access + cross-tenant keyvaults. + :vartype federatedClientId: str + """ + + 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 EncryptionTransitionRequest(TypedDict, total=False): """Encryption transition request. @@ -2984,113 +1734,6 @@ 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 azureKeyVaultUri: The Azure Key Vault URI where the Entra ID credentials are stored. - Required. - :vartype azureKeyVaultUri: str - :ivar certificateName: The name of the certificate in Azure Key Vault. Required. - :vartype certificateName: str - :ivar userAssignedIdentity: The ARM resource identifier of the user assigned identity used to - authenticate with key vault. - :vartype userAssignedIdentity: 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 azureKeyVaultUri: The Azure Key Vault URI where the Entra ID credentials are stored. - :vartype azureKeyVaultUri: str - :ivar certificateName: The name of the certificate in Azure Key Vault. - :vartype certificateName: str - :ivar userAssignedIdentity: The ARM resource identifier of the user assigned identity used to - authenticate with key vault. - :vartype userAssignedIdentity: 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 applicationId: ApplicationId of the app created by customer to provide authentication and - required API permissions for Microsoft Graph endpoint. Required. - :vartype applicationId: str - :ivar domain: Domain of the Active directory synced to Entra ID for hybrid identities. - Required. - :vartype domain: str - :ivar serverNamePrefix: 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 serverNamePrefix: str - :ivar 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. - :vartype entraIdAkvConfig: "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 applicationId: ApplicationId of the app created by customer to provide authentication and - required API permissions for Microsoft Graph endpoint. - :vartype applicationId: str - :ivar domain: Domain of the Active directory synced to Entra ID for hybrid identities. - :vartype domain: str - :ivar serverNamePrefix: 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 serverNamePrefix: str - :ivar 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. - :vartype entraIdAkvConfig: "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. @@ -3286,6 +1929,25 @@ class KeyVaultProperties(TypedDict, total=False): \"Error\", and \"Updating\".""" +class KeyVaultPropertiesPatch(TypedDict, total=False): + """Properties of key vault for PATCH operations (no required properties). + + :ivar keyVaultUri: The Uri of KeyVault. + :vartype keyVaultUri: str + :ivar keyName: The name of KeyVault key. + :vartype keyName: str + :ivar keyVaultResourceId: The resource ID of KeyVault. + :vartype keyVaultResourceId: str + """ + + keyVaultUri: str + """The Uri of KeyVault.""" + keyName: str + """The name of KeyVault key.""" + keyVaultResourceId: str + """The resource ID of KeyVault.""" + + class LdapConfiguration(TypedDict, total=False): """LDAP configuration. @@ -3699,8 +2361,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 512GiB (549755813888 - bytes) or in 1TiB chunks (value must be multiple of 1099511627776). + :ivar size: Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value + must be multiple of 1099511627776). :vartype size: int :ivar qosType: The qos type of the pool. Known values are: "Auto" and "Manual". :vartype qosType: Union[str, "QosType"] @@ -3712,8 +2374,8 @@ class PoolPatchProperties(TypedDict, total=False): """ size: int - """Provisioned size of the pool (in bytes). Allowed values are 512GiB (549755813888 bytes) or in - 1TiB chunks (value must be multiple of 1099511627776).""" + """Provisioned size of the pool (in bytes). Allowed values are 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 @@ -3728,8 +2390,8 @@ class PoolProperties(TypedDict, total=False): :ivar poolId: UUID v4 used to identify the Pool. :vartype poolId: str - :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. + :ivar size: Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value + must be multiple of 1099511627776). Required. :vartype size: int :ivar serviceLevel: The service level of the file system. Required. Known values are: "Standard", "Premium", "Ultra", "StandardZRS", and "Flexible". @@ -3756,8 +2418,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 512GiB (549755813888 bytes) or in - 1TiB chunks (value must be multiple of 1099511627776). Required.""" + """Provisioned size of the pool (in bytes). Allowed values are 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\".""" @@ -4067,57 +2729,6 @@ 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 keyVaultProperties: Properties provided by KeyVault. - :vartype keyVaultProperties: "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 principalId: The principal ID (object ID) of the identity used to authenticate with key - vault. Read-only. - :vartype principalId: str - :ivar userAssignedIdentity: 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 userAssignedIdentity: 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 keyVaultUri: The Uri of KeyVault. Required. - :vartype keyVaultUri: str - :ivar secretName: The name of KeyVault password secret. Required. - :vartype secretName: 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. @@ -4125,11 +2736,10 @@ class SmbSettings(TypedDict, total=False): SMB/DualProtocol cache. Known values are: "Disabled" and "Enabled". :vartype smbEncryption: Union[str, "SmbEncryptionState"] :ivar smbAccessBasedEnumeration: Enables access-based enumeration share property for SMB - Shares. Only applicable for SMB/DualProtocol volume. Known values are: "Disabled" and - "Enabled". + Shares. Only applicable for SMB/DualProtocol cache. Known values are: "Disabled" and "Enabled". :vartype smbAccessBasedEnumeration: Union[str, "SmbAccessBasedEnumeration"] :ivar smbNonBrowsable: Enables non-browsable property for SMB Shares. Only applicable for - SMB/DualProtocol volume. Known values are: "Disabled" and "Enabled". + SMB/DualProtocol cache. Known values are: "Disabled" and "Enabled". :vartype smbNonBrowsable: Union[str, "SmbNonBrowsable"] """ @@ -4138,9 +2748,9 @@ class SmbSettings(TypedDict, total=False): values are: \"Disabled\" and \"Enabled\".""" smbAccessBasedEnumeration: Union[str, "SmbAccessBasedEnumeration"] """Enables access-based enumeration share property for SMB Shares. Only applicable for - SMB/DualProtocol volume. Known values are: \"Disabled\" and \"Enabled\".""" + SMB/DualProtocol cache. Known values are: \"Disabled\" and \"Enabled\".""" smbNonBrowsable: Union[str, "SmbNonBrowsable"] - """Enables non-browsable property for SMB Shares. Only applicable for SMB/DualProtocol volume. + """Enables non-browsable property for SMB Shares. Only applicable for SMB/DualProtocol cache. Known values are: \"Disabled\" and \"Enabled\".""" @@ -4687,8 +3297,7 @@ class VolumePatchProperties(TypedDict, total=False): :ivar usageThreshold: Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. For regular volumes, valid values are in the range 50GiB to 100TiB. For large volumes, valid values are in the range 100TiB to 500TiB, and on an - 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. + exceptional basis, from to 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB. :vartype usageThreshold: int :ivar exportPolicy: Set of export policy rules. :vartype exportPolicy: "VolumePatchPropertiesExportPolicy" @@ -4756,8 +3365,7 @@ 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. For extra large volumes, valid values are in the range 2400GiB to 7200TiB. - Values expressed in bytes as multiples of 1 GiB.""" + 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB.""" exportPolicy: "VolumePatchPropertiesExportPolicy" """Set of export policy rules.""" protocolTypes: list[str] @@ -4855,8 +3463,8 @@ class VolumeProperties(TypedDict, total=False): :ivar usageThreshold: Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. For regular volumes, valid values are in the range 50GiB to 100TiB. For large volumes, valid values are in the range 100TiB to 500TiB, and on an - 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. + exceptional basis, from to 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB. + Required. :vartype usageThreshold: int :ivar exportPolicy: Set of export policy rules. :vartype exportPolicy: "VolumePropertiesExportPolicy" @@ -4948,9 +3556,6 @@ class VolumeProperties(TypedDict, total=False): :vartype keyVaultPrivateEndpointResourceId: str :ivar ldapEnabled: Specifies whether LDAP is enabled or not for a given NFS volume. :vartype ldapEnabled: bool - :ivar ldapServerType: Specifies the type of LDAP server for a given NFS volume. Known values - are: "ActiveDirectory" and "OpenLDAP". - :vartype ldapServerType: Union[str, "LdapServerType"] :ivar coolAccess: Specifies whether Cool Access(tiering) is enabled for the volume. :vartype coolAccess: bool :ivar coolnessPeriod: Specifies the number of days after which data that is not accessed by @@ -5029,27 +3634,11 @@ class VolumeProperties(TypedDict, total=False): :vartype provisionedAvailabilityZone: str :ivar isLargeVolume: Specifies whether volume is a Large Volume or Regular Volume. :vartype isLargeVolume: bool - :ivar 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". - :vartype largeVolumeType: Union[str, "LargeVolumeType"] :ivar originatingResourceId: Id of the snapshot or backup that the volume is restored from. :vartype originatingResourceId: str :ivar inheritedSizeInBytes: Space shared by short term clone volume with parent volume in bytes. :vartype inheritedSizeInBytes: 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 breakthroughMode: Specifies whether the volume operates in Breakthrough Mode. Known values are: "Enabled" and "Disabled". :vartype breakthroughMode: Union[str, "BreakthroughMode"] @@ -5066,8 +3655,7 @@ 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. For extra large volumes, valid values are in the range 2400GiB to 7200TiB. - Values expressed in bytes as multiples of 1 GiB. Required.""" + 2400GiB to 2400TiB. Values expressed in bytes as multiples of 1 GiB. Required.""" exportPolicy: "VolumePropertiesExportPolicy" """Set of export policy rules.""" protocolTypes: list[str] @@ -5148,9 +3736,6 @@ 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 @@ -5222,28 +3807,10 @@ 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\".""" @@ -5332,8 +3899,8 @@ class VolumeQuotaRulesProperties(TypedDict, total=False): """Volume Quota Rule properties. :ivar provisioningState: Gets the status of the VolumeQuotaRule at the time the operation was - called. Known values are: "Accepted", "Creating", "Patching", "Updating", "Deleting", "Moving", - "Failed", and "Succeeded". + called. Known values are: "Succeeded", "Failed", "Canceled", "Accepted", "Creating", + "Patching", "Updating", "Deleting", and "Moving". :vartype provisioningState: Union[str, "NetAppProvisioningState"] :ivar quotaSizeInKiBs: Size of quota. :vartype quotaSizeInKiBs: int @@ -5348,8 +3915,8 @@ class VolumeQuotaRulesProperties(TypedDict, total=False): provisioningState: Union[str, "NetAppProvisioningState"] """Gets the status of the VolumeQuotaRule at the time the operation was called. Known values are: - \"Accepted\", \"Creating\", \"Patching\", \"Updating\", \"Deleting\", \"Moving\", \"Failed\", - and \"Succeeded\".""" + \"Succeeded\", \"Failed\", \"Canceled\", \"Accepted\", \"Creating\", \"Patching\", + \"Updating\", \"Deleting\", and \"Moving\".""" quotaSizeInKiBs: int """Size of quota.""" quotaType: Union[str, "QuotaType"] 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 448ebe1dec66..7c78fd92cf71 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-06-15-preview/Accounts_ChangeKeyVault.json +# x-ms-original-file: 2026-08-01/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 a5d97788d40e..208d7dd9233d 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-06-15-preview/Accounts_CreateOrUpdate.json +# x-ms-original-file: 2026-08-01/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 622c576e0363..827ea8cea2fe 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-06-15-preview/Accounts_CreateOrUpdateAD.json +# x-ms-original-file: 2026-08-01/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 index 623f860d20b8..9dae3070b957 100644 --- 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 @@ -61,6 +61,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/Accounts_CreateOrUpdateLdapConfig.json +# x-ms-original-file: 2026-08-01/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 1335e8938c11..7ac966e1964b 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-06-15-preview/Accounts_Delete.json +# x-ms-original-file: 2026-08-01/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 bf6256328124..3f82f3f4d166 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-06-15-preview/Accounts_Get.json +# x-ms-original-file: 2026-08-01/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 65b1340c8ad6..533da8159651 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-06-15-preview/Accounts_GetChangeKeyVaultInformation.json +# x-ms-original-file: 2026-08-01/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 28382ebf49c4..7851e13db770 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-06-15-preview/Accounts_List.json +# x-ms-original-file: 2026-08-01/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 db76aad88b65..fc53a6830feb 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-06-15-preview/Accounts_ListBySubscription.json +# x-ms-original-file: 2026-08-01/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 index fafb0e4ebb21..2b0368bfa122 100644 --- 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 @@ -36,6 +36,6 @@ def main(): ).result() -# x-ms-original-file: 2026-06-15-preview/Accounts_RefreshLdapBindPassword.json +# x-ms-original-file: 2026-08-01/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 7e9fe7fc1162..3e0ee6d4f325 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-06-15-preview/Accounts_RenewCredentials.json +# x-ms-original-file: 2026-08-01/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 4d8489995035..3e16412960a0 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-06-15-preview/Accounts_TransitionEncryptionKey.json +# x-ms-original-file: 2026-08-01/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 9a0527223a5a..0f9c270b32ea 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-06-15-preview/Accounts_Update.json +# x-ms-original-file: 2026-08-01/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 deleted file mode 100644 index f9a15bddf475..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_create_or_update.py +++ /dev/null @@ -1,73 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 716a8ccf12c1..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_delete.py +++ /dev/null @@ -1,41 +0,0 @@ -# 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-06-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 deleted file mode 100644 index f8ca255587f5..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_get.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 63131e52d363..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_resource_group.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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-06-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 deleted file mode 100644 index a28f6669f3d7..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_list_by_subscription.py +++ /dev/null @@ -1,40 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 3af14c34a3f1..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/active_directory_configs_update.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 b15de4673d66..6c612d28ce85 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-06-15-preview/BackupPolicies_Create.json +# x-ms-original-file: 2026-08-01/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 a24c2c9d6fe5..d50693160056 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-06-15-preview/BackupPolicies_Delete.json +# x-ms-original-file: 2026-08-01/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 6110902c11fd..586e31de9d3c 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-06-15-preview/BackupPolicies_Get.json +# x-ms-original-file: 2026-08-01/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 a2feeba39b1c..b1c04998d91a 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-06-15-preview/BackupPolicies_List.json +# x-ms-original-file: 2026-08-01/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 d0558180cd15..6c8c01842970 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-06-15-preview/BackupPolicies_Update.json +# x-ms-original-file: 2026-08-01/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 731342aec517..0557dcdb21b1 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-06-15-preview/BackupVaults_Create.json +# x-ms-original-file: 2026-08-01/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 cde646796a9d..f126baf7acc7 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-06-15-preview/BackupVaults_Delete.json +# x-ms-original-file: 2026-08-01/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 2f1ba8bcf0d9..11b6836e6077 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-06-15-preview/BackupVaults_Get.json +# x-ms-original-file: 2026-08-01/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 7710015efc5d..4c7bd60446ef 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-06-15-preview/BackupVaults_List.json +# x-ms-original-file: 2026-08-01/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 5a18c7879756..20dfead1a94b 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-06-15-preview/BackupVaults_Update.json +# x-ms-original-file: 2026-08-01/BackupVaults_Update.json if __name__ == "__main__": main() diff --git a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_list_by_vault.py b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_list_by_vault.py index c2182338e588..ddd88fe3d2e0 100644 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_list_by_vault.py +++ b/sdk/netapp/azure-mgmt-netapp/generated_samples/backups_list_by_vault.py @@ -39,6 +39,6 @@ def main(): print(item) -# x-ms-original-file: 2026-06-15-preview/Backups_ListByVault.json +# x-ms-original-file: 2026-08-01/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 0ecd6c22e784..3833d0a71852 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-06-15-preview/BackupsUnderAccount_Migrate.json +# x-ms-original-file: 2026-08-01/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 ef5bc73224cf..ad45573f41bb 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-06-15-preview/BackupsUnderBackupVault_Create.json +# x-ms-original-file: 2026-08-01/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 abef1265bdc4..2aa9627042f3 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-06-15-preview/BackupsUnderBackupVault_Delete.json +# x-ms-original-file: 2026-08-01/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 7ff69b1508ac..3d29b56ea8a9 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-06-15-preview/BackupsUnderBackupVault_Get.json +# x-ms-original-file: 2026-08-01/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 fbf0669c6a7e..2adb5c4bcc6f 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-06-15-preview/BackupsUnderBackupVault_SingleFileRestore.json +# x-ms-original-file: 2026-08-01/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 e700c590ec16..5395b658d2c5 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-06-15-preview/BackupsUnderBackupVault_Update.json +# x-ms-original-file: 2026-08-01/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 91894de76b58..ab7585a2ed61 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-06-15-preview/BackupsUnderVolume_Migrate.json +# x-ms-original-file: 2026-08-01/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 c8fe6c37821a..83c80173dee0 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-06-15-preview/Buckets_CreateOrUpdate.json +# x-ms-original-file: 2026-08-01/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 0ffef9add54c..25db2a92cb72 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,4 +1,3 @@ -# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -43,12 +42,10 @@ 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}}, @@ -61,6 +58,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/Buckets_CreateOrUpdateWithAkv.json +# x-ms-original-file: 2026-08-01/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 9a6c6178caec..432040b03733 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-06-15-preview/Buckets_Delete.json +# x-ms-original-file: 2026-08-01/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 d107dc59c0c8..adafa716dba1 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-06-15-preview/Buckets_GenerateAkvCredentials.json +# x-ms-original-file: 2026-08-01/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 4f87a6977028..85de0ba8d306 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-06-15-preview/Buckets_GenerateCredentials.json +# x-ms-original-file: 2026-08-01/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 02cbea984165..c6ba43adf538 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-06-15-preview/Buckets_Get.json +# x-ms-original-file: 2026-08-01/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 f535703851f6..b859f435b63d 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-06-15-preview/Buckets_List.json +# x-ms-original-file: 2026-08-01/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 de124989cae1..26aebe9344a7 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-06-15-preview/Buckets_RefreshCertificate.json +# x-ms-original-file: 2026-08-01/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 40013e22756f..d44174fec629 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-06-15-preview/Buckets_Update.json +# x-ms-original-file: 2026-08-01/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 00909439d286..92920c64b01a 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,4 +1,3 @@ -# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -43,12 +42,10 @@ 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", @@ -59,6 +56,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/Buckets_UpdateWithAkv.json +# x-ms-original-file: 2026-08-01/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 3eba3b536d8f..ddcbe271e430 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-06-15-preview/Caches_CreateOrUpdate.json +# x-ms-original-file: 2026-08-01/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 19b90543e7da..0572c7308622 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-06-15-preview/Caches_Delete.json +# x-ms-original-file: 2026-08-01/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 7f50c882d6ca..d32123268244 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-06-15-preview/Caches_Get.json +# x-ms-original-file: 2026-08-01/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 b1cf98673848..1e9292f85d95 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-06-15-preview/Caches_List.json +# x-ms-original-file: 2026-08-01/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 291a6ef1858c..8c6f34bb761b 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-06-15-preview/Caches_ListPeeringPassphrases.json +# x-ms-original-file: 2026-08-01/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 d795adf59252..99a1fcd556a3 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-06-15-preview/Caches_PoolChange.json +# x-ms-original-file: 2026-08-01/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 c0d039584061..d93edc7e2cb5 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-06-15-preview/Caches_ResetSmbPassword.json +# x-ms-original-file: 2026-08-01/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 2b683e178a52..9bec05fcc9fc 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-06-15-preview/Caches_Update.json +# x-ms-original-file: 2026-08-01/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 fc18751f1682..44b61463724a 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 @@ -41,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/CheckFilePathAvailability.json +# x-ms-original-file: 2026-08-01/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 021c59d34c5f..78d89ccb2310 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-06-15-preview/CheckNameAvailability.json +# x-ms-original-file: 2026-08-01/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 98bdf7ed3a79..d9c5c4011871 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-06-15-preview/CheckQuotaAvailability.json +# x-ms-original-file: 2026-08-01/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 deleted file mode 100644 index 914bf00a59de..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_create_or_update.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index dafb4b1db9b8..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_delete.py +++ /dev/null @@ -1,41 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 8ae090a7f001..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_get.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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-06-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 deleted file mode 100644 index dfa704a2f3bf..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_resource_group.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 364922f8ce71..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_list_by_subscription.py +++ /dev/null @@ -1,40 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 4b28b8164c8d..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_accounts_update.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 799e36f6312e..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_create_or_update.py +++ /dev/null @@ -1,52 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 7a2541421042..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_delete.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 9d7785098c1e..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_get.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index c88fabb9d345..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_list.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 79fc4bf5b16a..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_policies_update.py +++ /dev/null @@ -1,51 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 628ad027dcfa..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_create.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index a13da86a7d1b..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_delete.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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-06-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 deleted file mode 100644 index d82bc44cecc2..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_get.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 86e4f109c475..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_list_by_elastic_account.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index f20a0ebb3d5c..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backup_vaults_update.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 769901f48280..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_create_or_update.py +++ /dev/null @@ -1,53 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 93e07a0d6a4c..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_delete.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index e0e1fa0ef52e..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_get.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index fe9eb95e02a7..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_list_by_vault.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index f182a6a52fba..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_backups_update.py +++ /dev/null @@ -1,72 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 44b6711d7ca3..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_change_zone.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 7c26b31aa33e..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_check_volume_file_path_availability.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index e28c94f5a95d..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update.py +++ /dev/null @@ -1,54 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 33ad2061452a..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_create_or_update_cmk.py +++ /dev/null @@ -1,58 +0,0 @@ -# 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-06-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 deleted file mode 100644 index be5cd92430c3..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_delete.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 7f5cc0eef64b..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_get.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index c19cb41fd974..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_list_by_elastic_account.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index e46fbfd6bf47..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_capacity_pools_update.py +++ /dev/null @@ -1,50 +0,0 @@ -# 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-06-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 deleted file mode 100644 index d09fd89394d5..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_create_or_update.py +++ /dev/null @@ -1,53 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 862071d36597..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_delete.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 00d066a76634..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_get.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index b3d80471a798..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_by_elastic_account.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index c1a77962355c..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_list_elastic_volumes.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 25525e499e97..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshot_policies_update.py +++ /dev/null @@ -1,52 +0,0 @@ -# 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-06-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 deleted file mode 100644 index ccdb51262b34..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_create_or_update.py +++ /dev/null @@ -1,59 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 28f6a26873ef..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_delete.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index cd6c29ae53a8..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_get.py +++ /dev/null @@ -1,45 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 6b650af71cc5..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_snapshots_list_by_elastic_volume.py +++ /dev/null @@ -1,45 +0,0 @@ -# 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-06-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 deleted file mode 100644 index b7c8f514abfb..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_create_or_update.py +++ /dev/null @@ -1,75 +0,0 @@ -# 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-06-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 deleted file mode 100644 index 616af92b08d5..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_delete.py +++ /dev/null @@ -1,43 +0,0 @@ -# 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-06-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 deleted file mode 100644 index a828cfd8e78e..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_get.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index c906c87b048e..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_list_by_elastic_pool.py +++ /dev/null @@ -1,44 +0,0 @@ -# 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-06-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 deleted file mode 100644 index e6bf118a6695..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_revert.py +++ /dev/null @@ -1,48 +0,0 @@ -# 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-06-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 deleted file mode 100644 index e9b5926d3dbd..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_samples/elastic_volumes_update.py +++ /dev/null @@ -1,66 +0,0 @@ -# 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-06-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 4dd73bde4a86..790a3abe600c 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-06-15-preview/GroupIdListForLDAPUser.json +# x-ms-original-file: 2026-08-01/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 b51b774b3466..54ba939c31ba 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-06-15-preview/NetAppResourceQuotaLimitsAccount_Get.json +# x-ms-original-file: 2026-08-01/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 0b12ac934189..c731b56aa12e 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-06-15-preview/NetAppResourceQuotaLimitsAccount_List.json +# x-ms-original-file: 2026-08-01/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 7c1053148430..98adebf67f74 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-06-15-preview/NetAppResourceQuotaLimits_Get.json +# x-ms-original-file: 2026-08-01/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 174b0f00d973..5bc22674c819 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-06-15-preview/NetAppResourceQuotaLimits_List.json +# x-ms-original-file: 2026-08-01/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 07503e7b4bd6..be06dc469a3e 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 @@ -41,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/NetworkSiblingSet_Query.json +# x-ms-original-file: 2026-08-01/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 8f0d49dc71f7..89303abc0ae2 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 @@ -43,6 +43,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/NetworkSiblingSet_Update.json +# x-ms-original-file: 2026-08-01/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 e5e8d893b165..00d151a3625c 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-06-15-preview/OperationList.json +# x-ms-original-file: 2026-08-01/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 5b7e4109e553..f18de3a6b576 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-06-15-preview/Pools_CreateOrUpdate.json +# x-ms-original-file: 2026-08-01/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 581bd5980b28..bd2e317f551b 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-06-15-preview/Pools_CreateOrUpdate_CustomThroughput.json +# x-ms-original-file: 2026-08-01/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 4ea2bcd4f457..a68cbac3113a 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-06-15-preview/Pools_Delete.json +# x-ms-original-file: 2026-08-01/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 ecf0d5d75cb4..017e04a84026 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-06-15-preview/Pools_Get.json +# x-ms-original-file: 2026-08-01/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 205fccec2ee8..0b52a2fdac8f 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-06-15-preview/Pools_Get_CustomThroughput.json +# x-ms-original-file: 2026-08-01/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 6a8587e6e802..ff9f628cfe09 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-06-15-preview/Pools_List.json +# x-ms-original-file: 2026-08-01/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 9923bb915966..1d05ec1e2276 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-06-15-preview/Pools_Update.json +# x-ms-original-file: 2026-08-01/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 12f04b2572c1..767a41cb4e2e 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-06-15-preview/Pools_Update_CustomThroughput.json +# x-ms-original-file: 2026-08-01/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 5b6040d48555..51f37fafcbfb 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-06-15-preview/RansomwareReports_ClearSuspects.json +# x-ms-original-file: 2026-08-01/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 ce6ff1502801..1a07cb8ed999 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-06-15-preview/RansomwareReports_Get.json +# x-ms-original-file: 2026-08-01/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 d5d9510052f3..a6292d5ad01e 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-06-15-preview/RansomwareReports_List.json +# x-ms-original-file: 2026-08-01/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 f2ed7377ab96..0d0d9b1542bc 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-06-15-preview/RegionInfo.json +# x-ms-original-file: 2026-08-01/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 74cb1875ff7f..3c33fe5876e7 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-06-15-preview/RegionInfos_Get.json +# x-ms-original-file: 2026-08-01/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 3e5a715aa27d..a39c39a90c8d 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-06-15-preview/RegionInfos_List.json +# x-ms-original-file: 2026-08-01/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 57bb1f5011f2..078587611228 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-06-15-preview/SnapshotPolicies_Create.json +# x-ms-original-file: 2026-08-01/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 6c8ba178b2b3..66af7c513aa9 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-06-15-preview/SnapshotPolicies_Delete.json +# x-ms-original-file: 2026-08-01/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 8060f61a5bbb..9b0c4c8ba71d 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-06-15-preview/SnapshotPolicies_Get.json +# x-ms-original-file: 2026-08-01/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 a1c79813c15f..f6fc8f561cb2 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-06-15-preview/SnapshotPolicies_List.json +# x-ms-original-file: 2026-08-01/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 64d3503cf79b..4db2f0d5ce43 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-06-15-preview/SnapshotPolicies_ListVolumes.json +# x-ms-original-file: 2026-08-01/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 7e59346c417b..338df043f392 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-06-15-preview/SnapshotPolicies_Update.json +# x-ms-original-file: 2026-08-01/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 efaa52d18ef0..dfaec7b9b9b1 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-06-15-preview/Snapshots_Create.json +# x-ms-original-file: 2026-08-01/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 6ccbcf55efb4..0f77a4a3bb2e 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-06-15-preview/Snapshots_Delete.json +# x-ms-original-file: 2026-08-01/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 655ab3c9a37d..0593986e0e1f 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-06-15-preview/Snapshots_Get.json +# x-ms-original-file: 2026-08-01/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 4a0b63bdd1c9..940a84eeb383 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-06-15-preview/Snapshots_List.json +# x-ms-original-file: 2026-08-01/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 b2aaffca359c..1a8b06c8d135 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-06-15-preview/Snapshots_SingleFileRestore.json +# x-ms-original-file: 2026-08-01/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 c29bea0e1509..336a8df69026 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-06-15-preview/Snapshots_Update.json +# x-ms-original-file: 2026-08-01/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 c31465e2a19e..f59e908723ac 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-06-15-preview/Subvolumes_Create.json +# x-ms-original-file: 2026-08-01/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 5a8cdf8b0a13..49a33f18cec4 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-06-15-preview/Subvolumes_Delete.json +# x-ms-original-file: 2026-08-01/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 447c165b01a7..793283e8a90e 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-06-15-preview/Subvolumes_Get.json +# x-ms-original-file: 2026-08-01/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 4f45e7ac568e..38cd27182b15 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-06-15-preview/Subvolumes_List.json +# x-ms-original-file: 2026-08-01/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 83b9fc71f1dd..70bb2e9938f0 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-06-15-preview/Subvolumes_Metadata.json +# x-ms-original-file: 2026-08-01/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 4cec8c7a36ec..e98ff984846f 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-06-15-preview/Subvolumes_Update.json +# x-ms-original-file: 2026-08-01/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 d62914bb8188..5569f2293f00 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-06-15-preview/Usages_Get.json +# x-ms-original-file: 2026-08-01/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 edebca0c28f6..8348fb915415 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-06-15-preview/Usages_List.json +# x-ms-original-file: 2026-08-01/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 index 77a3a8dfc3de..f21bfebd6bc8 100644 --- 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 @@ -459,6 +459,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/VolumeGroups_Create_Custom.json +# x-ms-original-file: 2026-08-01/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 index 13b1a5ad2195..83429b681dbf 100644 --- 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 @@ -279,6 +279,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/VolumeGroups_Create_Custom_SMB.json +# x-ms-original-file: 2026-08-01/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 6b207117adfd..f2158a0269e5 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-06-15-preview/VolumeGroups_Create_Oracle.json +# x-ms-original-file: 2026-08-01/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 2d6bfc3fc59d..5b08127c70dc 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-06-15-preview/VolumeGroups_Create_SapHana.json +# x-ms-original-file: 2026-08-01/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 e3057a174783..c9da70ecc28c 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-06-15-preview/VolumeGroups_Delete.json +# x-ms-original-file: 2026-08-01/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 index b720fa29e395..c3e1c9a115c1 100644 --- 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 @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/VolumeGroups_Get_Custom.json +# x-ms-original-file: 2026-08-01/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 index 852fcb4e843d..3c2992695458 100644 --- 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 @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/VolumeGroups_Get_Custom_SMB.json +# x-ms-original-file: 2026-08-01/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 6ea4e1986c26..f85302dab9bc 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-06-15-preview/VolumeGroups_Get_Oracle.json +# x-ms-original-file: 2026-08-01/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 991f6783b49a..30abe8e3c135 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-06-15-preview/VolumeGroups_Get_SapHana.json +# x-ms-original-file: 2026-08-01/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 index a54c2d22745f..1ce51f9fb34b 100644 --- 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 @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2026-06-15-preview/VolumeGroups_List_Custom.json +# x-ms-original-file: 2026-08-01/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 a77e9adf055b..2a3deab680ea 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-06-15-preview/VolumeGroups_List_Oracle.json +# x-ms-original-file: 2026-08-01/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 aac2d6c648ff..dee2fa59fb63 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-06-15-preview/VolumeGroups_List_SapHana.json +# x-ms-original-file: 2026-08-01/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 e03c86cc702f..eaea5df56e75 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-06-15-preview/VolumeQuotaRules_Create.json +# x-ms-original-file: 2026-08-01/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 feac62e43b28..a3c6764f1340 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-06-15-preview/VolumeQuotaRules_Delete.json +# x-ms-original-file: 2026-08-01/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 3fe3bc00af1f..c54f9d4af123 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-06-15-preview/VolumeQuotaRules_Get.json +# x-ms-original-file: 2026-08-01/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 ca5db84294f7..c3f8c8ce8f69 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-06-15-preview/VolumeQuotaRules_List.json +# x-ms-original-file: 2026-08-01/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 72cb871f2a51..d1def19cba9a 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-06-15-preview/VolumeQuotaRules_Update.json +# x-ms-original-file: 2026-08-01/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 5b488d3088d4..7190ac23ba27 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-06-15-preview/Volumes_AuthorizeExternalReplication.json +# x-ms-original-file: 2026-08-01/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 7b4e41f929b0..b675fae48a97 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-06-15-preview/Volumes_AuthorizeReplication.json +# x-ms-original-file: 2026-08-01/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 0ded420ab3b6..1978b9cfea27 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-06-15-preview/Volumes_BreakFileLocks.json +# x-ms-original-file: 2026-08-01/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 9b2aa75e8893..1dad1c8c7317 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-06-15-preview/Volumes_BreakReplication.json +# x-ms-original-file: 2026-08-01/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 d26d66cb75f7..d106c9c0b5cc 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 @@ -49,6 +49,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/Volumes_CreateOrUpdate.json +# x-ms-original-file: 2026-08-01/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 b94ce4bb83e6..e8e0b44acd4d 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-06-15-preview/Volumes_Delete.json +# x-ms-original-file: 2026-08-01/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 a05380a4a61a..0fd3a09e129a 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-06-15-preview/Volumes_DeleteReplication.json +# x-ms-original-file: 2026-08-01/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 index 101b51c28e15..59163eb8d09b 100644 --- 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 @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2026-06-15-preview/Volumes_ExtraLargeVolumes_Get.json +# x-ms-original-file: 2026-08-01/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 index 81422a8b25c5..3708d0e38929 100644 --- 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 @@ -39,6 +39,6 @@ def main(): print(item) -# x-ms-original-file: 2026-06-15-preview/Volumes_ExtraLargeVolumes_List.json +# x-ms-original-file: 2026-08-01/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 c9806d43b457..b04d81a0ba61 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-06-15-preview/Volumes_FinalizeExternalReplication.json +# x-ms-original-file: 2026-08-01/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 4a2428fb7bd3..6f5917ef6c82 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-06-15-preview/Volumes_FinalizeRelocation.json +# x-ms-original-file: 2026-08-01/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 4eabf7968f17..593d200dfeeb 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-06-15-preview/Volumes_Get.json +# x-ms-original-file: 2026-08-01/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 8162827e8186..b77692c3b669 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-06-15-preview/Volumes_LatestBackupStatus.json +# x-ms-original-file: 2026-08-01/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 d05bfc619186..d97a58b24a48 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-06-15-preview/Volumes_LatestRestoreStatus.json +# x-ms-original-file: 2026-08-01/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 19d1f80dde3d..829e9e42a1df 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-06-15-preview/Volumes_List.json +# x-ms-original-file: 2026-08-01/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 506e20b3445c..d3927f966c27 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-06-15-preview/Volumes_ListQuotaReport.json +# x-ms-original-file: 2026-08-01/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 049441bcc6b4..e0064393a7b7 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-06-15-preview/Volumes_ListReplications.json +# x-ms-original-file: 2026-08-01/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 99996200a3d3..df829e14dcfa 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-06-15-preview/Volumes_PeerExternalCluster.json +# x-ms-original-file: 2026-08-01/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 f7ea691e4551..13aa682edb1f 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-06-15-preview/Volumes_PerformReplicationTransfer.json +# x-ms-original-file: 2026-08-01/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 b2ad4f2f2f8b..06126fbdefbb 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-06-15-preview/Volumes_PoolChange.json +# x-ms-original-file: 2026-08-01/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 9c8111eedd48..30a8e8140bb6 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-06-15-preview/Volumes_PopulateAvailabilityZones.json +# x-ms-original-file: 2026-08-01/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 9aad4dd316d6..ca5304209da8 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-06-15-preview/Volumes_ReInitializeReplication.json +# x-ms-original-file: 2026-08-01/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 c3ed4a0dce74..717d337abe9c 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-06-15-preview/Volumes_ReestablishReplication.json +# x-ms-original-file: 2026-08-01/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 896632bd6f1a..49955c147538 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-06-15-preview/Volumes_Relocate.json +# x-ms-original-file: 2026-08-01/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 3c91325fb5f8..6b99c3e90eb2 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-06-15-preview/Volumes_ReplicationStatus.json +# x-ms-original-file: 2026-08-01/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 bbb3b84fc422..2cb730f8f796 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-06-15-preview/Volumes_ResetCifsPassword.json +# x-ms-original-file: 2026-08-01/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 00ae29924658..c49942dec22c 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-06-15-preview/Volumes_ResyncReplication.json +# x-ms-original-file: 2026-08-01/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 90438b00471c..797f83855135 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-06-15-preview/Volumes_Revert.json +# x-ms-original-file: 2026-08-01/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 87031bce0f26..a01ca2dca9e0 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-06-15-preview/Volumes_RevertRelocation.json +# x-ms-original-file: 2026-08-01/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 2b5ea38f0b52..a2befb8a6075 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-06-15-preview/Volumes_SplitClone.json +# x-ms-original-file: 2026-08-01/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 f0d94cb82ee4..4662881812c6 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-06-15-preview/Volumes_Update.json +# x-ms-original-file: 2026-08-01/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 50e533da27af..dbf453b79e3e 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,16 +86,6 @@ 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", @@ -171,31 +161,13 @@ def test_accounts_begin_update(self, resource_group): "serverRootCACertificate": "str", "site": "str", "smbServerName": "str", - "status": "str", - "statusDetails": "str", "username": "str", } ], "encryption": { - "identity": {"federatedClientId": "str", "principalId": "str", "userAssignedIdentity": "str"}, + "identity": {"federatedClientId": "str", "userAssignedIdentity": "str"}, "keySource": "str", - "keyVaultProperties": { - "keyName": "str", - "keyVaultUri": "str", - "keyVaultId": "str", - "keyVaultResourceId": "str", - "status": "str", - }, - }, - "entraIdConfig": { - "applicationId": "str", - "domain": "str", - "entraIdAkvConfig": { - "azureKeyVaultUri": "str", - "certificateName": "str", - "userAssignedIdentity": "str", - }, - "serverNamePrefix": "str", + "keyVaultProperties": {"keyName": "str", "keyVaultResourceId": "str", "keyVaultUri": "str"}, }, "ldapConfiguration": { "bindAuthenticationLevel": "str", 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 e6ef9adcd088..5a6475f91655 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,16 +92,6 @@ 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", @@ -179,35 +169,13 @@ async def test_accounts_begin_update(self, resource_group): "serverRootCACertificate": "str", "site": "str", "smbServerName": "str", - "status": "str", - "statusDetails": "str", "username": "str", } ], "encryption": { - "identity": { - "federatedClientId": "str", - "principalId": "str", - "userAssignedIdentity": "str", - }, + "identity": {"federatedClientId": "str", "userAssignedIdentity": "str"}, "keySource": "str", - "keyVaultProperties": { - "keyName": "str", - "keyVaultUri": "str", - "keyVaultId": "str", - "keyVaultResourceId": "str", - "status": "str", - }, - }, - "entraIdConfig": { - "applicationId": "str", - "domain": "str", - "entraIdAkvConfig": { - "azureKeyVaultUri": "str", - "certificateName": "str", - "userAssignedIdentity": "str", - }, - "serverNamePrefix": "str", + "keyVaultProperties": {"keyName": "str", "keyVaultResourceId": "str", "keyVaultUri": "str"}, }, "ldapConfiguration": { "bindAuthenticationLevel": "str", 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 deleted file mode 100644 index 97f9bd69acea..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations.py +++ /dev/null @@ -1,144 +0,0 @@ -# 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 deleted file mode 100644 index f51c4b09ae4c..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_active_directory_configs_operations_async.py +++ /dev/null @@ -1,151 +0,0 @@ -# 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 b53eb57ce51b..06d0980b940f 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,16 +46,8 @@ def test_buckets_begin_create_or_update(self, resource_group): "name": "str", "properties": { "akvDetails": { - "certificateAkvDetails": { - "certificateKeyVaultUri": "str", - "certificateName": "str", - "userAssignedIdentity": "str", - }, - "credentialsAkvDetails": { - "credentialsKeyVaultUri": "str", - "secretName": "str", - "userAssignedIdentity": "str", - }, + "certificateAkvDetails": {"certificateKeyVaultUri": "str", "certificateName": "str"}, + "credentialsAkvDetails": {"credentialsKeyVaultUri": "str", "secretName": "str"}, }, "fileSystemUser": {"cifsUser": {"username": "str"}, "nfsUser": {"groupId": 0, "userId": 0}}, "path": "str", @@ -100,16 +92,8 @@ def test_buckets_begin_update(self, resource_group): "name": "str", "properties": { "akvDetails": { - "certificateAkvDetails": { - "certificateKeyVaultUri": "str", - "certificateName": "str", - "userAssignedIdentity": "str", - }, - "credentialsAkvDetails": { - "credentialsKeyVaultUri": "str", - "secretName": "str", - "userAssignedIdentity": "str", - }, + "certificateAkvDetails": {"certificateKeyVaultUri": "str", "certificateName": "str"}, + "credentialsAkvDetails": {"credentialsKeyVaultUri": "str", "secretName": "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 b2b3488eae8a..a416510b68d9 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,16 +48,8 @@ async def test_buckets_begin_create_or_update(self, resource_group): "name": "str", "properties": { "akvDetails": { - "certificateAkvDetails": { - "certificateKeyVaultUri": "str", - "certificateName": "str", - "userAssignedIdentity": "str", - }, - "credentialsAkvDetails": { - "credentialsKeyVaultUri": "str", - "secretName": "str", - "userAssignedIdentity": "str", - }, + "certificateAkvDetails": {"certificateKeyVaultUri": "str", "certificateName": "str"}, + "credentialsAkvDetails": {"credentialsKeyVaultUri": "str", "secretName": "str"}, }, "fileSystemUser": {"cifsUser": {"username": "str"}, "nfsUser": {"groupId": 0, "userId": 0}}, "path": "str", @@ -104,16 +96,8 @@ async def test_buckets_begin_update(self, resource_group): "name": "str", "properties": { "akvDetails": { - "certificateAkvDetails": { - "certificateKeyVaultUri": "str", - "certificateName": "str", - "userAssignedIdentity": "str", - }, - "credentialsAkvDetails": { - "credentialsKeyVaultUri": "str", - "secretName": "str", - "userAssignedIdentity": "str", - }, + "certificateAkvDetails": {"certificateKeyVaultUri": "str", "certificateName": "str"}, + "credentialsAkvDetails": {"credentialsKeyVaultUri": "str", "secretName": "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 deleted file mode 100644 index 8c04a6f2050a..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations.py +++ /dev/null @@ -1,137 +0,0 @@ -# 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 deleted file mode 100644 index f70e3d724df8..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_accounts_operations_async.py +++ /dev/null @@ -1,152 +0,0 @@ -# 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 deleted file mode 100644 index 2a5975f76da1..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations.py +++ /dev/null @@ -1,111 +0,0 @@ -# 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 deleted file mode 100644 index c3111a40262a..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_policies_operations_async.py +++ /dev/null @@ -1,118 +0,0 @@ -# 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 deleted file mode 100644 index 89de70ca5ea6..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations.py +++ /dev/null @@ -1,96 +0,0 @@ -# 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 deleted file mode 100644 index 432076357ee9..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backup_vaults_operations_async.py +++ /dev/null @@ -1,103 +0,0 @@ -# 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 deleted file mode 100644 index aca78bdf7488..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations.py +++ /dev/null @@ -1,139 +0,0 @@ -# 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 deleted file mode 100644 index 9449eb50fcc7..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_backups_operations_async.py +++ /dev/null @@ -1,146 +0,0 @@ -# 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 deleted file mode 100644 index e07a93fc8f9d..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations.py +++ /dev/null @@ -1,140 +0,0 @@ -# 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 deleted file mode 100644 index 464803929ce1..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_capacity_pools_operations_async.py +++ /dev/null @@ -1,155 +0,0 @@ -# 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 deleted file mode 100644 index 786cf72f5f52..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations.py +++ /dev/null @@ -1,124 +0,0 @@ -# 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 deleted file mode 100644 index c891e271a4be..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshot_policies_operations_async.py +++ /dev/null @@ -1,131 +0,0 @@ -# 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 deleted file mode 100644 index 9ec309a1ac18..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations.py +++ /dev/null @@ -1,88 +0,0 @@ -# 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 deleted file mode 100644 index b191f7f9e9c9..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_snapshots_operations_async.py +++ /dev/null @@ -1,93 +0,0 @@ -# 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 deleted file mode 100644 index 89d83270afc8..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations.py +++ /dev/null @@ -1,175 +0,0 @@ -# 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 deleted file mode 100644 index 0e7a23ba2dde..000000000000 --- a/sdk/netapp/azure-mgmt-netapp/generated_tests/test_net_app_management_elastic_volumes_operations_async.py +++ /dev/null @@ -1,184 +0,0 @@ -# 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 fa7b11b561e5..ed1c6dc1efe2 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,10 +138,7 @@ 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 e9c6c1e9013e..e85958487a49 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,10 +144,7 @@ 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 c246e210b195..6cccb58d08f0 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,10 +118,7 @@ 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 4ff5a7f6cc0a..2047229e6eda 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,10 +120,7 @@ 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 6738596cfaad..d89eeae0a296 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 :: 4 - Beta", + "Development Status :: 5 - Production/Stable", "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 = false +is_stable = true 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 f6c1047ff703..82a0b6c4a4a8 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: 7b37a9458cffc3977f2c84f487fcb3ccc429f8a7 +commit: 52d43820f214975f29c5d263e0311210dd7e336b repo: Azure/azure-rest-api-specs additionalDirectories: From 493e3ea3aecf0a0aa1ae47370fea15bf54611c68 Mon Sep 17 00:00:00 2001 From: Nandakumar Siddavaram Date: Tue, 20 Oct 2026 14:31:39 -0700 Subject: [PATCH 2/4] generated-from-SDK Generation - Python-6979692- #49621 --- sdk/netapp/azure-mgmt-netapp/assets.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/netapp/azure-mgmt-netapp/assets.json b/sdk/netapp/azure-mgmt-netapp/assets.json index 2c2d930ce48d..6529f3dc5e72 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_4bae16672d" + "Tag": "python/netapp/azure-mgmt-netapp_62a27881b2" } From 8c863453fd2faed94ba9efbbcc3f721cbf21b789 Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Wed, 21 Oct 2026 06:43:30 +0000 Subject: [PATCH 3/4] Configurations: 'specification/netapp/resource-manager/Microsoft.NetApp/NetApp/tspconfig.yaml', and CommitSHA: '2371f14ab26ab99500de46ac5c507476a8e0fc61' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6982798 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --- sdk/netapp/azure-mgmt-netapp/CHANGELOG.md | 2 +- sdk/netapp/azure-mgmt-netapp/_metadata.json | 2 +- sdk/netapp/azure-mgmt-netapp/apiview-properties.json | 2 +- sdk/netapp/azure-mgmt-netapp/tsp-location.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md b/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md index 3f6c9b0276eb..b9bc51a27b24 100644 --- a/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md +++ b/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 18.0.0 (2026-10-20) +## 18.0.0 (2026-10-21) ### Features Added diff --git a/sdk/netapp/azure-mgmt-netapp/_metadata.json b/sdk/netapp/azure-mgmt-netapp/_metadata.json index a395dd3b9323..e24f1a62e6c9 100644 --- a/sdk/netapp/azure-mgmt-netapp/_metadata.json +++ b/sdk/netapp/azure-mgmt-netapp/_metadata.json @@ -3,7 +3,7 @@ "apiVersions": { "Microsoft.NetApp": "2026-08-01" }, - "commit": "52d43820f214975f29c5d263e0311210dd7e336b", + "commit": "2371f14ab26ab99500de46ac5c507476a8e0fc61", "repository_url": "https://github.com/Azure/azure-rest-api-specs", "typespec_src": "specification/netapp/resource-manager/Microsoft.NetApp/NetApp", "emitterVersion": "0.63.10", diff --git a/sdk/netapp/azure-mgmt-netapp/apiview-properties.json b/sdk/netapp/azure-mgmt-netapp/apiview-properties.json index d02966ee6f8b..1be0411539f4 100644 --- a/sdk/netapp/azure-mgmt-netapp/apiview-properties.json +++ b/sdk/netapp/azure-mgmt-netapp/apiview-properties.json @@ -487,5 +487,5 @@ "azure.mgmt.netapp.operations.NetAppResourceUsagesOperations.get": "Microsoft.NetApp.NetAppResourceUsagesOperationGroup.get", "azure.mgmt.netapp.aio.operations.NetAppResourceUsagesOperations.get": "Microsoft.NetApp.NetAppResourceUsagesOperationGroup.get" }, - "CrossLanguageVersion": "a93b0f331703" + "CrossLanguageVersion": "364a2f7b75ab" } \ No newline at end of file diff --git a/sdk/netapp/azure-mgmt-netapp/tsp-location.yaml b/sdk/netapp/azure-mgmt-netapp/tsp-location.yaml index 82a0b6c4a4a8..3ccb9ec4bec0 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: 52d43820f214975f29c5d263e0311210dd7e336b +commit: 2371f14ab26ab99500de46ac5c507476a8e0fc61 repo: Azure/azure-rest-api-specs additionalDirectories: From 44d70f2b2c6b0d584c724bc221aee1e19fbd3cf4 Mon Sep 17 00:00:00 2001 From: Chenxi Jiang <119990644+ChenxiJiang333@users.noreply.github.com> Date: Fri, 23 Oct 2026 10:38:24 +0800 Subject: [PATCH 4/4] Update CHANGELOG.md --- sdk/netapp/azure-mgmt-netapp/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md b/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md index b9bc51a27b24..aa99d232d725 100644 --- a/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md +++ b/sdk/netapp/azure-mgmt-netapp/CHANGELOG.md @@ -17,7 +17,7 @@ - Added model `LdapConfiguration` - Added model `LdapConfigurationPatch` - Added enum `SecureLdapType` - - Model `AccountsOperations` added method `begin_refresh_ldap_bind_password` + - Operation group `AccountsOperations` added method `begin_refresh_ldap_bind_password` ### Breaking Changes