From b6f1057ffc6775cf9245b28b9c6d85cc89b41871 Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Wed, 1 Apr 2026 21:32:35 +0000 Subject: [PATCH] Configurations: 'specification/dataprotection/resource-manager/Microsoft.DataProtection/DataProtection/tspconfig.yaml', API Version: 2026_03_01, SDK Release Type: beta, and CommitSHA: '32ab0a3f798fed9517cb4026e47144251ea9331e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6095330 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --- .../azure-mgmt-dataprotection/CHANGELOG.md | 18 + .../azure-mgmt-dataprotection/_metadata.json | 9 +- .../apiview-properties.json | 14 + .../azure/mgmt/dataprotection/_client.py | 12 +- .../mgmt/dataprotection/_configuration.py | 7 +- .../mgmt/dataprotection/_utils/model_base.py | 141 ++- .../dataprotection/_utils/serialization.py | 19 +- .../azure/mgmt/dataprotection/_validation.py | 66 + .../azure/mgmt/dataprotection/_version.py | 2 +- .../azure/mgmt/dataprotection/aio/_client.py | 12 +- .../mgmt/dataprotection/aio/_configuration.py | 7 +- .../dataprotection/aio/operations/__init__.py | 2 + .../aio/operations/_operations.py | 861 ++++++++++--- .../mgmt/dataprotection/models/__init__.py | 20 + .../mgmt/dataprotection/models/_enums.py | 162 ++- .../mgmt/dataprotection/models/_models.py | 562 ++++++++- .../dataprotection/operations/__init__.py | 2 + .../dataprotection/operations/_operations.py | 1063 +++++++++++++---- .../check_backup_vaults_name_availability.py | 2 +- .../generated_samples/checkfeature_support.py | 2 +- .../create_or_update_backup_policy.py | 2 +- .../delete_backup_instance.py | 2 +- .../generated_samples/delete_backup_policy.py | 2 +- .../generated_samples/delete_backup_vault.py | 2 +- .../delete_resource_guard.py | 2 +- .../delete_resource_guard_proxy.py | 2 +- .../deleted_backup_vaults_get.py | 42 + .../deleted_backup_vaults_list_by_location.py | 42 + .../fetch_cross_region_restore_job.py | 2 +- .../fetch_cross_region_restore_jobs.py | 2 +- .../generated_samples/fetch_secondary_rps.py | 2 +- .../find_restorable_time_ranges.py | 2 +- .../generated_samples/get_backup_instance.py | 2 +- ...nstance_adlsblob_backup_auto_protection.py | 43 + ...e_adlsblob_backup_datasource_parameters.py | 2 +- ...up_instance_blob_backup_auto_protection.py | 43 + .../get_backup_instance_operation_result.py | 2 +- .../generated_samples/get_backup_policy.py | 2 +- .../generated_samples/get_backup_vault.py | 2 +- .../get_backup_vault_with_cmk.py | 2 +- .../get_backup_vault_with_msi.py | 2 +- .../get_backup_vaults_in_resource_group.py | 2 +- .../get_backup_vaults_in_subscription.py | 2 +- ...et_default_backup_security_pin_requests.py | 2 +- ..._default_delete_protected_item_requests.py | 2 +- ...lt_delete_resource_guard_proxy_requests.py | 2 +- ...et_default_disable_soft_delete_requests.py | 2 +- ..._default_update_protected_item_requests.py | 2 +- ...fault_update_protection_policy_requests.py | 2 +- .../get_deleted_backup_instance.py | 2 +- .../get_export_jobs_operation_result.py | 2 +- .../generated_samples/get_job.py | 2 +- .../generated_samples/get_operation_result.py | 2 +- .../get_operation_result_patch.py | 2 +- .../generated_samples/get_operation_status.py | 2 +- .../get_operation_status_rg_context.py | 2 +- .../get_operation_status_vault_context.py | 2 +- .../generated_samples/get_recovery_point.py | 2 +- .../generated_samples/get_resource_guard.py | 2 +- .../get_resource_guard_proxy.py | 2 +- .../get_resource_guards_in_resource_group.py | 2 +- .../get_resource_guards_in_subscription.py | 2 +- .../generated_samples/list.py | 2 +- .../list_backup_instances.py | 2 +- ...list_backup_instances_extension_routing.py | 2 +- .../generated_samples/list_backup_policy.py | 2 +- .../list_backup_security_pin_requests.py | 2 +- .../list_delete_protected_item_requests.py | 2 +- ...st_delete_resource_guard_proxy_requests.py | 2 +- .../list_deleted_backup_instances.py | 2 +- .../list_disable_soft_delete_requests.py | 2 +- .../generated_samples/list_jobs.py | 2 +- .../generated_samples/list_recovery_points.py | 2 +- .../list_resource_guard_proxy.py | 2 +- .../list_update_protected_item_requests.py | 2 +- .../list_update_protection_policy_requests.py | 2 +- .../generated_samples/patch_backup_vault.py | 2 +- .../patch_backup_vault_with_cmk.py | 2 +- .../generated_samples/patch_resource_guard.py | 2 +- .../generated_samples/put_backup_instance.py | 2 +- ...nstance_adlsblob_backup_auto_protection.py | 96 ++ ...e_adlsblob_backup_datasource_parameters.py | 2 +- ...up_instance_blob_backup_auto_protection.py | 96 ++ ...es_cluster_backup_datasource_parameters.py | 2 +- ..._backup_instance_resource_guard_enabled.py | 2 +- .../generated_samples/put_backup_vault.py | 2 +- .../put_backup_vault_with_cmk.py | 2 +- .../put_backup_vault_with_msi.py | 2 +- .../put_backup_vault_with_undelete.py | 58 + .../generated_samples/put_resource_guard.py | 2 +- .../put_resource_guard_proxy.py | 2 +- .../generated_samples/resume_backups.py | 2 +- .../generated_samples/resume_protection.py | 2 +- .../generated_samples/stop_protection.py | 2 +- .../stop_protection_resource_guard_enabled.py | 2 +- .../suspend_backup_resource_guard_enabled.py | 2 +- .../generated_samples/suspend_backups.py | 2 +- .../generated_samples/sync_backup_instance.py | 2 +- .../generated_samples/trigger_backup.py | 2 +- .../trigger_cross_region_restore.py | 2 +- .../generated_samples/trigger_export_jobs.py | 2 +- .../generated_samples/trigger_rehydrate.py | 2 +- .../generated_samples/trigger_restore.py | 2 +- .../trigger_restore_as_files.py | 2 +- .../trigger_restore_with_rehydration.py | 2 +- .../undelete_deleted_backup_instance.py | 2 +- .../unlock_delete_resource_guard_proxy.py | 2 +- .../validate_cross_region_restore.py | 2 +- .../generated_samples/validate_for_backup.py | 2 +- .../validate_for_modify_backup.py | 2 +- .../generated_samples/validate_restore.py | 2 +- ...rotection_mgmt_backup_vaults_operations.py | 2 +- ...ion_mgmt_backup_vaults_operations_async.py | 2 +- ...n_mgmt_deleted_backup_vaults_operations.py | 40 + ..._deleted_backup_vaults_operations_async.py | 41 + .../azure-mgmt-dataprotection/pyproject.toml | 6 +- ...ection_management_operations_async_test.py | 1 + ...taprotection_management_operations_test.py | 1 + ...nt_resourceguards_operations_async_test.py | 1 + ...nagement_resourceguards_operations_test.py | 1 + .../tsp-location.yaml | 2 +- 121 files changed, 3100 insertions(+), 568 deletions(-) create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_validation.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/deleted_backup_vaults_get.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/deleted_backup_vaults_list_by_location.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_adlsblob_backup_auto_protection.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_blob_backup_auto_protection.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_adlsblob_backup_auto_protection.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_blob_backup_auto_protection.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_undelete.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_deleted_backup_vaults_operations.py create mode 100644 sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_deleted_backup_vaults_operations_async.py diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/CHANGELOG.md b/sdk/dataprotection/azure-mgmt-dataprotection/CHANGELOG.md index e41296ae1916..559fd7e2ff80 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/CHANGELOG.md +++ b/sdk/dataprotection/azure-mgmt-dataprotection/CHANGELOG.md @@ -1,5 +1,23 @@ # Release History +## 2.1.0b1 (2026-04-01) + +### Features Added + + - Client `DataProtectionMgmtClient` added operation group `deleted_backup_vaults` + - Added model `AdlsBlobBackupDatasourceParametersForAutoProtection` + - Added model `BlobBackupAutoProtectionRule` + - Added model `BlobBackupAutoProtectionSettings` + - Added model `BlobBackupDatasourceParametersForAutoProtection` + - Added enum `BlobBackupPatternType` + - Added model `BlobBackupRuleBasedAutoProtectionSettings` + - Added enum `BlobBackupRuleMode` + - Added model `DeletedBackupVault` + - Added model `DeletedBackupVaultResource` + - Added model `ResourceDeletionInfo` + - Model `BackupVaultsOperations` added parameter `x_ms_deleted_vault_id` in method `begin_create_or_update` + - Added model `DeletedBackupVaultsOperations` + ## 2.0.1 (2025-10-09) ### Bugs Fixed diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/_metadata.json b/sdk/dataprotection/azure-mgmt-dataprotection/_metadata.json index 929bfc72b9e5..a7d12d686c6c 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/_metadata.json +++ b/sdk/dataprotection/azure-mgmt-dataprotection/_metadata.json @@ -1,7 +1,10 @@ { - "apiVersion": "2025-07-01", - "commit": "6ba5680f1a58735e8f4d64ddbf8965e750cff9ee", + "apiVersion": "2026-03-01", + "apiVersions": { + "Microsoft.DataProtection": "2026-03-01" + }, + "commit": "32ab0a3f798fed9517cb4026e47144251ea9331e", "repository_url": "https://github.com/Azure/azure-rest-api-specs", "typespec_src": "specification/dataprotection/resource-manager/Microsoft.DataProtection/DataProtection", - "emitterVersion": "0.50.0" + "emitterVersion": "0.61.2" } \ No newline at end of file diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/apiview-properties.json b/sdk/dataprotection/azure-mgmt-dataprotection/apiview-properties.json index b1cdba2af84d..71c4bc97536a 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/apiview-properties.json +++ b/sdk/dataprotection/azure-mgmt-dataprotection/apiview-properties.json @@ -11,6 +11,7 @@ "azure.mgmt.dataprotection.models.BackupDatasourceParameters": "Microsoft.DataProtection.BackupDatasourceParameters", "azure.mgmt.dataprotection.models.BlobBackupDatasourceParameters": "Microsoft.DataProtection.BlobBackupDatasourceParameters", "azure.mgmt.dataprotection.models.AdlsBlobBackupDatasourceParameters": "Microsoft.DataProtection.AdlsBlobBackupDatasourceParameters", + "azure.mgmt.dataprotection.models.AdlsBlobBackupDatasourceParametersForAutoProtection": "Microsoft.DataProtection.AdlsBlobBackupDatasourceParametersForAutoProtection", "azure.mgmt.dataprotection.models.AuthCredentials": "Microsoft.DataProtection.AuthCredentials", "azure.mgmt.dataprotection.models.AzureBackupRecoveryPoint": "Microsoft.DataProtection.AzureBackupRecoveryPoint", "azure.mgmt.dataprotection.models.AzureBackupDiscreteRecoveryPoint": "Microsoft.DataProtection.AzureBackupDiscreteRecoveryPoint", @@ -47,6 +48,10 @@ "azure.mgmt.dataprotection.models.BackupVaultResource": "Microsoft.DataProtection.BackupVaultResource", "azure.mgmt.dataprotection.models.BaseBackupPolicyResource": "Microsoft.DataProtection.BaseBackupPolicyResource", "azure.mgmt.dataprotection.models.BaseResourceProperties": "Microsoft.DataProtection.BaseResourceProperties", + "azure.mgmt.dataprotection.models.BlobBackupAutoProtectionRule": "Microsoft.DataProtection.BlobBackupAutoProtectionRule", + "azure.mgmt.dataprotection.models.BlobBackupAutoProtectionSettings": "Microsoft.DataProtection.BlobBackupAutoProtectionSettings", + "azure.mgmt.dataprotection.models.BlobBackupDatasourceParametersForAutoProtection": "Microsoft.DataProtection.BlobBackupDatasourceParametersForAutoProtection", + "azure.mgmt.dataprotection.models.BlobBackupRuleBasedAutoProtectionSettings": "Microsoft.DataProtection.BlobBackupRuleBasedAutoProtectionSettings", "azure.mgmt.dataprotection.models.CheckNameAvailabilityRequest": "Microsoft.DataProtection.CheckNameAvailabilityRequest", "azure.mgmt.dataprotection.models.CheckNameAvailabilityResult": "Microsoft.DataProtection.CheckNameAvailabilityResult", "azure.mgmt.dataprotection.models.CloudError": "Microsoft.DataProtection.CloudError", @@ -68,6 +73,8 @@ "azure.mgmt.dataprotection.models.DefaultResourceProperties": "Microsoft.DataProtection.DefaultResourceProperties", "azure.mgmt.dataprotection.models.DeletedBackupInstance": "Microsoft.DataProtection.DeletedBackupInstance", "azure.mgmt.dataprotection.models.DeletedBackupInstanceResource": "Microsoft.DataProtection.DeletedBackupInstanceResource", + "azure.mgmt.dataprotection.models.DeletedBackupVault": "Microsoft.DataProtection.DeletedBackupVault", + "azure.mgmt.dataprotection.models.DeletedBackupVaultResource": "Microsoft.DataProtection.DeletedBackupVaultResource", "azure.mgmt.dataprotection.models.DeletionInfo": "Microsoft.DataProtection.DeletionInfo", "azure.mgmt.dataprotection.models.DppBaseResource": "Microsoft.DataProtection.DppBaseResource", "azure.mgmt.dataprotection.models.DppIdentityDetails": "Microsoft.DataProtection.DppIdentityDetails", @@ -115,6 +122,7 @@ "azure.mgmt.dataprotection.models.ProtectionStatusDetails": "Microsoft.DataProtection.ProtectionStatusDetails", "azure.mgmt.dataprotection.models.RangeBasedItemLevelRestoreCriteria": "Microsoft.DataProtection.RangeBasedItemLevelRestoreCriteria", "azure.mgmt.dataprotection.models.RecoveryPointDataStoreDetails": "Microsoft.DataProtection.RecoveryPointDataStoreDetails", + "azure.mgmt.dataprotection.models.ResourceDeletionInfo": "Microsoft.DataProtection.ResourceDeletionInfo", "azure.mgmt.dataprotection.models.ResourceGuard": "Microsoft.DataProtection.ResourceGuard", "azure.mgmt.dataprotection.models.ResourceGuardOperation": "Microsoft.DataProtection.ResourceGuardOperation", "azure.mgmt.dataprotection.models.ResourceGuardOperationDetail": "Microsoft.DataProtection.ResourceGuardOperationDetail", @@ -158,6 +166,8 @@ "azure.mgmt.dataprotection.models.CreatedByType": "Azure.ResourceManager.CommonTypes.createdByType", "azure.mgmt.dataprotection.models.ResourcePropertiesObjectType": "Microsoft.DataProtection.ResourcePropertiesObjectType", "azure.mgmt.dataprotection.models.DataStoreTypes": "Microsoft.DataProtection.DataStoreTypes", + "azure.mgmt.dataprotection.models.BlobBackupRuleMode": "Microsoft.DataProtection.BlobBackupRuleMode", + "azure.mgmt.dataprotection.models.BlobBackupPatternType": "Microsoft.DataProtection.BlobBackupPatternType", "azure.mgmt.dataprotection.models.AKSVolumeTypes": "Microsoft.DataProtection.AKSVolumeTypes", "azure.mgmt.dataprotection.models.Status": "Microsoft.DataProtection.Status", "azure.mgmt.dataprotection.models.CurrentProtectionState": "Microsoft.DataProtection.CurrentProtectionState", @@ -233,6 +243,10 @@ "azure.mgmt.dataprotection.aio.operations.BackupInstancesOperations.begin_validate_cross_region_restore": "Microsoft.DataProtection.BackupInstancesOperationGroup.validateCrossRegionRestore", "azure.mgmt.dataprotection.operations.BackupVaultOperationResultsOperations.get": "Microsoft.DataProtection.BackupVaultOperationResults.get", "azure.mgmt.dataprotection.aio.operations.BackupVaultOperationResultsOperations.get": "Microsoft.DataProtection.BackupVaultOperationResults.get", + "azure.mgmt.dataprotection.operations.DeletedBackupVaultsOperations.get": "Microsoft.DataProtection.DeletedBackupVaults.get", + "azure.mgmt.dataprotection.aio.operations.DeletedBackupVaultsOperations.get": "Microsoft.DataProtection.DeletedBackupVaults.get", + "azure.mgmt.dataprotection.operations.DeletedBackupVaultsOperations.list_by_location": "Microsoft.DataProtection.DeletedBackupVaults.listByLocation", + "azure.mgmt.dataprotection.aio.operations.DeletedBackupVaultsOperations.list_by_location": "Microsoft.DataProtection.DeletedBackupVaults.listByLocation", "azure.mgmt.dataprotection.operations.ResourceGuardsOperations.get_default_delete_resource_guard_proxy_requests_object": "Microsoft.DataProtection.ResourceGuards.getDefaultDeleteResourceGuardProxyRequestsObject", "azure.mgmt.dataprotection.aio.operations.ResourceGuardsOperations.get_default_delete_resource_guard_proxy_requests_object": "Microsoft.DataProtection.ResourceGuards.getDefaultDeleteResourceGuardProxyRequestsObject", "azure.mgmt.dataprotection.operations.ResourceGuardsOperations.get_delete_resource_guard_proxy_requests_objects": "Microsoft.DataProtection.ResourceGuards.getDeleteResourceGuardProxyRequestsObjects", diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_client.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_client.py index d9849b9fbdd9..d89a31643ea2 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_client.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_client.py @@ -28,6 +28,7 @@ DataProtectionOperations, DataProtectionOperationsOperations, DeletedBackupInstancesOperations, + DeletedBackupVaultsOperations, DppResourceGuardProxyOperations, ExportJobsOperationResultOperations, ExportJobsOperations, @@ -60,6 +61,9 @@ class DataProtectionMgmtClient: # pylint: disable=too-many-instance-attributes :ivar backup_vault_operation_results: BackupVaultOperationResultsOperations operations :vartype backup_vault_operation_results: azure.mgmt.dataprotection.operations.BackupVaultOperationResultsOperations + :ivar deleted_backup_vaults: DeletedBackupVaultsOperations operations + :vartype deleted_backup_vaults: + azure.mgmt.dataprotection.operations.DeletedBackupVaultsOperations :ivar resource_guards: ResourceGuardsOperations operations :vartype resource_guards: azure.mgmt.dataprotection.operations.ResourceGuardsOperations :ivar backup_vaults: BackupVaultsOperations operations @@ -119,8 +123,9 @@ class DataProtectionMgmtClient: # pylint: disable=too-many-instance-attributes :keyword cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :paramtype cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Default value is "2025-07-01". - 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-03-01". + Default value is "2026-03-01". 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. @@ -182,6 +187,9 @@ def __init__( self.backup_vault_operation_results = BackupVaultOperationResultsOperations( self._client, self._config, self._serialize, self._deserialize ) + self.deleted_backup_vaults = DeletedBackupVaultsOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.resource_guards = ResourceGuardsOperations(self._client, self._config, self._serialize, self._deserialize) self.backup_vaults = BackupVaultsOperations(self._client, self._config, self._serialize, self._deserialize) self.operation_status_backup_vault_context = OperationStatusBackupVaultContextOperations( diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_configuration.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_configuration.py index 1d77db354854..02f8ce80961b 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_configuration.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_configuration.py @@ -33,8 +33,9 @@ class DataProtectionMgmtClientConfiguration: # pylint: disable=too-many-instanc :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. Default value is "2025-07-01". - 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-03-01". + Default value is "2026-03-01". Note that overriding this default value may result in + unsupported behavior. :paramtype api_version: str """ @@ -46,7 +47,7 @@ def __init__( cloud_setting: Optional["AzureClouds"] = None, **kwargs: Any ) -> None: - api_version: str = kwargs.pop("api_version", "2025-07-01") + api_version: str = kwargs.pop("api_version", "2026-03-01") if credential is None: raise ValueError("Parameter 'credential' must not be None.") diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_utils/model_base.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_utils/model_base.py index 12926fa98dcf..7b7f8ba67b53 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_utils/model_base.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_utils/model_base.py @@ -37,6 +37,7 @@ TZ_UTC = timezone.utc _T = typing.TypeVar("_T") +_NONE_TYPE = type(None) def _timedelta_as_isostr(td: timedelta) -> str: @@ -171,6 +172,21 @@ def default(self, o): # pylint: disable=too-many-return-statements r"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT" ) +_ARRAY_ENCODE_MAPPING = { + "pipeDelimited": "|", + "spaceDelimited": " ", + "commaDelimited": ",", + "newlineDelimited": "\n", +} + + +def _deserialize_array_encoded(delimit: str, attr): + if isinstance(attr, str): + if attr == "": + return [] + return attr.split(delimit) + return attr + def _deserialize_datetime(attr: typing.Union[str, datetime]) -> datetime: """Deserialize ISO-8601 formatted string into Datetime object. @@ -202,7 +218,7 @@ def _deserialize_datetime(attr: typing.Union[str, datetime]) -> datetime: test_utc = date_obj.utctimetuple() if test_utc.tm_year > 9999 or test_utc.tm_year < 1: raise OverflowError("Hit max or min date") - return date_obj + return date_obj # type: ignore[no-any-return] def _deserialize_datetime_rfc7231(attr: typing.Union[str, datetime]) -> datetime: @@ -256,7 +272,7 @@ def _deserialize_time(attr: typing.Union[str, time]) -> time: """ if isinstance(attr, time): return attr - return isodate.parse_time(attr) + return isodate.parse_time(attr) # type: ignore[no-any-return] def _deserialize_bytes(attr): @@ -315,6 +331,8 @@ def _deserialize_int_as_str(attr): def get_deserializer(annotation: typing.Any, rf: typing.Optional["_RestField"] = None): if annotation is int and rf and rf._format == "str": return _deserialize_int_as_str + if annotation is str and rf and rf._format in _ARRAY_ENCODE_MAPPING: + return functools.partial(_deserialize_array_encoded, _ARRAY_ENCODE_MAPPING[rf._format]) if rf and rf._format: return _DESERIALIZE_MAPPING_WITHFORMAT.get(rf._format) return _DESERIALIZE_MAPPING.get(annotation) # pyright: ignore @@ -353,9 +371,39 @@ def __contains__(self, key: typing.Any) -> bool: return key in self._data def __getitem__(self, key: str) -> typing.Any: + # If this key has been deserialized (for mutable types), we need to handle serialization + if hasattr(self, "_attr_to_rest_field"): + cache_attr = f"_deserialized_{key}" + if hasattr(self, cache_attr): + rf = _get_rest_field(getattr(self, "_attr_to_rest_field"), key) + if rf: + value = self._data.get(key) + if isinstance(value, (dict, list, set)): + # For mutable types, serialize and return + # But also update _data with serialized form and clear flag + # so mutations via this returned value affect _data + serialized = _serialize(value, rf._format) + # If serialized form is same type (no transformation needed), + # return _data directly so mutations work + if isinstance(serialized, type(value)) and serialized == value: + return self._data.get(key) + # Otherwise return serialized copy and clear flag + try: + object.__delattr__(self, cache_attr) + except AttributeError: + pass + # Store serialized form back + self._data[key] = serialized + return serialized return self._data.__getitem__(key) def __setitem__(self, key: str, value: typing.Any) -> None: + # Clear any cached deserialized value when setting through dictionary access + cache_attr = f"_deserialized_{key}" + try: + object.__delattr__(self, cache_attr) + except AttributeError: + pass self._data.__setitem__(key, value) def __delitem__(self, key: str) -> None: @@ -467,6 +515,8 @@ def setdefault(self, key: str, default: typing.Any = _UNSET) -> typing.Any: return self._data.setdefault(key, default) def __eq__(self, other: typing.Any) -> bool: + if isinstance(other, _MyMutableMapping): + return self._data == other._data try: other_model = self.__class__(other) except Exception: @@ -483,6 +533,8 @@ def _is_model(obj: typing.Any) -> bool: def _serialize(o, format: typing.Optional[str] = None): # pylint: disable=too-many-return-statements if isinstance(o, list): + if format in _ARRAY_ENCODE_MAPPING and all(isinstance(x, str) for x in o): + return _ARRAY_ENCODE_MAPPING[format].join(o) return [_serialize(x, format) for x in o] if isinstance(o, dict): return {k: _serialize(v, format) for k, v in o.items()} @@ -578,6 +630,9 @@ def __init__(self, *args: typing.Any, **kwargs: typing.Any) -> None: if len(items) > 0: existed_attr_keys.append(xml_name) dict_to_pass[rf._rest_name] = _deserialize(rf._type, items) + elif not rf._is_optional: + existed_attr_keys.append(xml_name) + dict_to_pass[rf._rest_name] = [] continue # text element is primitive type @@ -758,6 +813,14 @@ def _deserialize_multiple_sequence( return type(obj)(_deserialize(deserializer, entry, module) for entry, deserializer in zip(obj, entry_deserializers)) +def _is_array_encoded_deserializer(deserializer: functools.partial) -> bool: + return ( + isinstance(deserializer, functools.partial) + and isinstance(deserializer.args[0], functools.partial) + and deserializer.args[0].func == _deserialize_array_encoded # pylint: disable=comparison-with-callable + ) + + def _deserialize_sequence( deserializer: typing.Optional[typing.Callable], module: typing.Optional[str], @@ -767,6 +830,19 @@ def _deserialize_sequence( return obj if isinstance(obj, ET.Element): obj = list(obj) + + # encoded string may be deserialized to sequence + if isinstance(obj, str) and isinstance(deserializer, functools.partial): + # for list[str] + if _is_array_encoded_deserializer(deserializer): + return deserializer(obj) + + # for list[Union[...]] + if isinstance(deserializer.args[0], list): + for sub_deserializer in deserializer.args[0]: + if _is_array_encoded_deserializer(sub_deserializer): + return sub_deserializer(obj) + return type(obj)(_deserialize(deserializer, entry, module) for entry in obj) @@ -817,16 +893,18 @@ def _get_deserialize_callable_from_annotation( # pylint: disable=too-many-retur # is it optional? try: - if any(a for a in annotation.__args__ if a == type(None)): # pyright: ignore + if any(a is _NONE_TYPE for a in annotation.__args__): # pyright: ignore + if rf: + rf._is_optional = True if len(annotation.__args__) <= 2: # pyright: ignore if_obj_deserializer = _get_deserialize_callable_from_annotation( - next(a for a in annotation.__args__ if a != type(None)), module, rf # pyright: ignore + next(a for a in annotation.__args__ if a is not _NONE_TYPE), module, rf # pyright: ignore ) return functools.partial(_deserialize_with_optional, if_obj_deserializer) # the type is Optional[Union[...]], we need to remove the None type from the Union annotation_copy = copy.copy(annotation) - annotation_copy.__args__ = [a for a in annotation_copy.__args__ if a != type(None)] # pyright: ignore + annotation_copy.__args__ = [a for a in annotation_copy.__args__ if a is not _NONE_TYPE] # pyright: ignore return _get_deserialize_callable_from_annotation(annotation_copy, module, rf) except AttributeError: pass @@ -910,16 +988,20 @@ def _deserialize_with_callable( return float(value.text) if value.text else None if deserializer is bool: return value.text == "true" if value.text else None + if deserializer and deserializer in _DESERIALIZE_MAPPING.values(): + return deserializer(value.text) if value.text else None + if deserializer and deserializer in _DESERIALIZE_MAPPING_WITHFORMAT.values(): + return deserializer(value.text) if value.text else None if deserializer is None: return value if deserializer in [int, float, bool]: return deserializer(value) if isinstance(deserializer, CaseInsensitiveEnumMeta): try: - return deserializer(value) + return deserializer(value.text if isinstance(value, ET.Element) else value) except ValueError: # for unknown value, return raw value - return value + return value.text if isinstance(value, ET.Element) else value if isinstance(deserializer, type) and issubclass(deserializer, Model): return deserializer._deserialize(value, []) return typing.cast(typing.Callable[[typing.Any], typing.Any], deserializer)(value) @@ -952,7 +1034,7 @@ def _failsafe_deserialize( ) -> typing.Any: try: return _deserialize(deserializer, response.json(), module, rf, format) - except DeserializationError: + except Exception: # pylint: disable=broad-except _LOGGER.warning( "Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True ) @@ -965,13 +1047,14 @@ def _failsafe_deserialize_xml( ) -> typing.Any: try: return _deserialize_xml(deserializer, response.text()) - except DeserializationError: + except Exception: # pylint: disable=broad-except _LOGGER.warning( "Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True ) return None +# pylint: disable=too-many-instance-attributes class _RestField: def __init__( self, @@ -991,6 +1074,7 @@ def __init__( self._is_discriminator = is_discriminator self._visibility = visibility self._is_model = False + self._is_optional = False self._default = default self._format = format self._is_multipart_file_input = is_multipart_file_input @@ -998,7 +1082,11 @@ def __init__( @property def _class_type(self) -> typing.Any: - return getattr(self._type, "args", [None])[0] + result = getattr(self._type, "args", [None])[0] + # type may be wrapped by nested functools.partial so we need to check for that + if isinstance(result, functools.partial): + return getattr(result, "args", [None])[0] + return result @property def _rest_name(self) -> str: @@ -1009,14 +1097,37 @@ def _rest_name(self) -> str: def __get__(self, obj: Model, type=None): # pylint: disable=redefined-builtin # by this point, type and rest_name will have a value bc we default # them in __new__ of the Model class - item = obj.get(self._rest_name) + # Use _data.get() directly to avoid triggering __getitem__ which clears the cache + item = obj._data.get(self._rest_name) if item is None: return item if self._is_model: return item - return _deserialize(self._type, _serialize(item, self._format), rf=self) + + # For mutable types, we want mutations to directly affect _data + # Check if we've already deserialized this value + cache_attr = f"_deserialized_{self._rest_name}" + if hasattr(obj, cache_attr): + # Return the value from _data directly (it's been deserialized in place) + return obj._data.get(self._rest_name) + + deserialized = _deserialize(self._type, _serialize(item, self._format), rf=self) + + # For mutable types, store the deserialized value back in _data + # so mutations directly affect _data + if isinstance(deserialized, (dict, list, set)): + obj._data[self._rest_name] = deserialized + object.__setattr__(obj, cache_attr, True) # Mark as deserialized + return deserialized + + return deserialized def __set__(self, obj: Model, value) -> None: + # Clear the cached deserialized object when setting a new value + cache_attr = f"_deserialized_{self._rest_name}" + if hasattr(obj, cache_attr): + object.__delattr__(obj, cache_attr) + if value is None: # we want to wipe out entries if users set attr to None try: @@ -1184,7 +1295,7 @@ def _get_wrapped_element( _get_element(v, exclude_readonly, meta, wrapped_element) else: wrapped_element.text = _get_primitive_type_value(v) - return wrapped_element + return wrapped_element # type: ignore[no-any-return] def _get_primitive_type_value(v) -> str: @@ -1197,7 +1308,9 @@ def _get_primitive_type_value(v) -> str: return str(v) -def _create_xml_element(tag, prefix=None, ns=None): +def _create_xml_element( + tag: typing.Any, prefix: typing.Optional[str] = None, ns: typing.Optional[str] = None +) -> ET.Element: if prefix and ns: ET.register_namespace(prefix, ns) if ns: diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_utils/serialization.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_utils/serialization.py index e81921cbb011..81ec1de5922b 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_utils/serialization.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_utils/serialization.py @@ -787,7 +787,7 @@ def serialize_data(self, data, data_type, **kwargs): # If dependencies is empty, try with current data class # It has to be a subclass of Enum anyway - enum_type = self.dependencies.get(data_type, data.__class__) + enum_type = self.dependencies.get(data_type, cast(type, data.__class__)) if issubclass(enum_type, Enum): return Serializer.serialize_enum(data, enum_obj=enum_type) @@ -821,13 +821,20 @@ def serialize_basic(cls, data, data_type, **kwargs): :param str data_type: Type of object in the iterable. :rtype: str, int, float, bool :return: serialized object + :raises TypeError: raise if data_type is not one of str, int, float, bool. """ custom_serializer = cls._get_custom_serializers(data_type, **kwargs) if custom_serializer: return custom_serializer(data) if data_type == "str": return cls.serialize_unicode(data) - return eval(data_type)(data) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(data) + if data_type == "float": + return float(data) + if data_type == "bool": + return bool(data) + raise TypeError("Unknown basic data type: {}".format(data_type)) @classmethod def serialize_unicode(cls, data): @@ -1757,7 +1764,7 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return :param str data_type: deserialization data type. :return: Deserialized basic type. :rtype: str, int, float or bool - :raises TypeError: if string format is not valid. + :raises TypeError: if string format is not valid or data_type is not one of str, int, float, bool. """ # If we're here, data is supposed to be a basic type. # If it's still an XML node, take the text @@ -1783,7 +1790,11 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return if data_type == "str": return self.deserialize_unicode(attr) - return eval(data_type)(attr) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(attr) + if data_type == "float": + return float(attr) + raise TypeError("Unknown basic data type: {}".format(data_type)) @staticmethod def deserialize_unicode(data): diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_validation.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_validation.py new file mode 100644 index 000000000000..f5af3a4eb8a2 --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_validation.py @@ -0,0 +1,66 @@ +# -------------------------------------------------------------------------- +# 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 functools + + +def api_version_validation(**kwargs): + params_added_on = kwargs.pop("params_added_on", {}) + method_added_on = kwargs.pop("method_added_on", "") + api_versions_list = kwargs.pop("api_versions_list", []) + + def _index_with_default(value: str, default: int = -1) -> int: + """Get the index of value in lst, or return default if not found. + + :param value: The value to search for in the api_versions_list. + :type value: str + :param default: The default value to return if the value is not found. + :type default: int + :return: The index of the value in the list, or the default value if not found. + :rtype: int + """ + try: + return api_versions_list.index(value) + except ValueError: + return default + + def decorator(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + try: + # this assumes the client has an _api_version attribute + client = args[0] + client_api_version = client._config.api_version # pylint: disable=protected-access + except AttributeError: + return func(*args, **kwargs) + + if _index_with_default(method_added_on) > _index_with_default(client_api_version): + raise ValueError( + f"'{func.__name__}' is not available in API version " + f"{client_api_version}. Pass service API version {method_added_on} or newer to your client." + ) + + unsupported = { + parameter: api_version + for api_version, parameters in params_added_on.items() + for parameter in parameters + if parameter in kwargs and _index_with_default(api_version) > _index_with_default(client_api_version) + } + if unsupported: + raise ValueError( + "".join( + [ + f"'{param}' is not available in API version {client_api_version}. " + f"Use service API version {version} or newer.\n" + for param, version in unsupported.items() + ] + ) + ) + return func(*args, **kwargs) + + return wrapper + + return decorator diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_version.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_version.py index 38c04a589ff2..5e17bc520983 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_version.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "2.0.1" +VERSION = "2.1.0b1" diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/_client.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/_client.py index 9269f57eeb49..195bf083ce8b 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/_client.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/_client.py @@ -28,6 +28,7 @@ DataProtectionOperations, DataProtectionOperationsOperations, DeletedBackupInstancesOperations, + DeletedBackupVaultsOperations, DppResourceGuardProxyOperations, ExportJobsOperationResultOperations, ExportJobsOperations, @@ -60,6 +61,9 @@ class DataProtectionMgmtClient: # pylint: disable=too-many-instance-attributes :ivar backup_vault_operation_results: BackupVaultOperationResultsOperations operations :vartype backup_vault_operation_results: azure.mgmt.dataprotection.aio.operations.BackupVaultOperationResultsOperations + :ivar deleted_backup_vaults: DeletedBackupVaultsOperations operations + :vartype deleted_backup_vaults: + azure.mgmt.dataprotection.aio.operations.DeletedBackupVaultsOperations :ivar resource_guards: ResourceGuardsOperations operations :vartype resource_guards: azure.mgmt.dataprotection.aio.operations.ResourceGuardsOperations :ivar backup_vaults: BackupVaultsOperations operations @@ -119,8 +123,9 @@ class DataProtectionMgmtClient: # pylint: disable=too-many-instance-attributes :keyword cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :paramtype cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Default value is "2025-07-01". - 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-03-01". + Default value is "2026-03-01". 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. @@ -184,6 +189,9 @@ def __init__( self.backup_vault_operation_results = BackupVaultOperationResultsOperations( self._client, self._config, self._serialize, self._deserialize ) + self.deleted_backup_vaults = DeletedBackupVaultsOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.resource_guards = ResourceGuardsOperations(self._client, self._config, self._serialize, self._deserialize) self.backup_vaults = BackupVaultsOperations(self._client, self._config, self._serialize, self._deserialize) self.operation_status_backup_vault_context = OperationStatusBackupVaultContextOperations( diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/_configuration.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/_configuration.py index 84efe3110b9a..a41e7893aba9 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/_configuration.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/_configuration.py @@ -33,8 +33,9 @@ class DataProtectionMgmtClientConfiguration: # pylint: disable=too-many-instanc :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. Default value is "2025-07-01". - 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-03-01". + Default value is "2026-03-01". Note that overriding this default value may result in + unsupported behavior. :paramtype api_version: str """ @@ -46,7 +47,7 @@ def __init__( cloud_setting: Optional["AzureClouds"] = None, **kwargs: Any ) -> None: - api_version: str = kwargs.pop("api_version", "2025-07-01") + api_version: str = kwargs.pop("api_version", "2026-03-01") if credential is None: raise ValueError("Parameter 'credential' must not be None.") diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/operations/__init__.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/operations/__init__.py index f58feb19c84b..6f4c2c384b1f 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/operations/__init__.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/operations/__init__.py @@ -15,6 +15,7 @@ from ._operations import DataProtectionOperationsOperations # type: ignore from ._operations import BackupInstancesOperations # type: ignore from ._operations import BackupVaultOperationResultsOperations # type: ignore +from ._operations import DeletedBackupVaultsOperations # type: ignore from ._operations import ResourceGuardsOperations # type: ignore from ._operations import BackupVaultsOperations # type: ignore from ._operations import OperationStatusBackupVaultContextOperations # type: ignore @@ -43,6 +44,7 @@ "DataProtectionOperationsOperations", "BackupInstancesOperations", "BackupVaultOperationResultsOperations", + "DeletedBackupVaultsOperations", "ResourceGuardsOperations", "BackupVaultsOperations", "OperationStatusBackupVaultContextOperations", diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/operations/_operations.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/operations/_operations.py index b7d6f975f71b..adad464751b9 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/operations/_operations.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/aio/operations/_operations.py @@ -36,6 +36,7 @@ from ... import models as _models from ..._utils.model_base import SdkJSONEncoder, _deserialize, _failsafe_deserialize from ..._utils.serialization import Deserializer, Serializer +from ..._validation import api_version_validation from ...operations._operations import ( build_backup_instances_adhoc_backup_request, build_backup_instances_create_or_update_request, @@ -73,6 +74,8 @@ build_deleted_backup_instances_get_request, build_deleted_backup_instances_list_request, build_deleted_backup_instances_undelete_request, + build_deleted_backup_vaults_get_request, + build_deleted_backup_vaults_list_by_location_request, build_dpp_resource_guard_proxy_create_or_update_request, build_dpp_resource_guard_proxy_delete_request, build_dpp_resource_guard_proxy_get_request, @@ -196,7 +199,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.Operation], deserialized.get("value", [])) + 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, AsyncList(list_of_elem) @@ -212,7 +218,10 @@ async def get_next(next_link=None): 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) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -285,6 +294,7 @@ async def get_backup_instance_operation_result( } _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 @@ -299,13 +309,16 @@ async def get_backup_instance_operation_result( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BackupInstanceResource, response.json()) @@ -385,7 +398,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BackupInstanceResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BackupInstanceResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -401,7 +417,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -451,6 +470,7 @@ async def _validate_for_backup_initial( } _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 @@ -464,7 +484,10 @@ async def _validate_for_backup_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -474,7 +497,7 @@ async def _validate_for_backup_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -689,6 +712,7 @@ async def get( } _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 @@ -703,11 +727,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BackupInstanceResource, response.json()) @@ -764,6 +791,7 @@ async def _create_or_update_initial( } _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 @@ -777,7 +805,10 @@ async def _create_or_update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -791,7 +822,7 @@ async def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -1025,6 +1056,7 @@ async def _delete_initial( } _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 @@ -1038,7 +1070,10 @@ async def _delete_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -1048,7 +1083,7 @@ async def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -1171,6 +1206,7 @@ async def _adhoc_backup_initial( } _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 @@ -1184,7 +1220,10 @@ async def _adhoc_backup_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -1194,7 +1233,7 @@ async def _adhoc_backup_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -1422,6 +1461,7 @@ async def _validate_for_modify_backup_initial( } _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 @@ -1435,7 +1475,10 @@ async def _validate_for_modify_backup_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.ErrorResponse, response) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -1444,7 +1487,7 @@ async def _validate_for_modify_backup_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -1660,6 +1703,7 @@ async def _trigger_rehydrate_initial( } _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 @@ -1673,7 +1717,10 @@ async def _trigger_rehydrate_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -1683,7 +1730,7 @@ async def _trigger_rehydrate_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -1902,6 +1949,7 @@ async def _trigger_restore_initial( } _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 @@ -1915,7 +1963,10 @@ async def _trigger_restore_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -1925,7 +1976,7 @@ async def _trigger_restore_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -2153,6 +2204,7 @@ async def _resume_backups_initial( } _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 @@ -2166,7 +2218,10 @@ async def _resume_backups_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -2176,7 +2231,7 @@ async def _resume_backups_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -2275,6 +2330,7 @@ async def _resume_protection_initial( } _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 @@ -2288,7 +2344,10 @@ async def _resume_protection_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -2298,7 +2357,7 @@ async def _resume_protection_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -2419,6 +2478,7 @@ async def _stop_protection_initial( } _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 @@ -2432,7 +2492,10 @@ async def _stop_protection_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -2442,7 +2505,7 @@ async def _stop_protection_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -2679,6 +2742,7 @@ async def _suspend_backups_initial( } _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 @@ -2692,7 +2756,10 @@ async def _suspend_backups_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -2702,7 +2769,7 @@ async def _suspend_backups_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -2936,6 +3003,7 @@ async def _sync_backup_instance_initial( } _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 @@ -2949,7 +3017,10 @@ async def _sync_backup_instance_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -2959,7 +3030,7 @@ async def _sync_backup_instance_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -2977,8 +3048,8 @@ async def begin_sync_backup_instance( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Sync backup instance again in case of failure - This action will retry last failed operation and will bring backup instance to valid state. + """Sync backup instance again in case of failure This action will retry last failed operation and + will bring backup instance to valid state. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -3008,8 +3079,8 @@ async def begin_sync_backup_instance( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Sync backup instance again in case of failure - This action will retry last failed operation and will bring backup instance to valid state. + """Sync backup instance again in case of failure This action will retry last failed operation and + will bring backup instance to valid state. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -3039,8 +3110,8 @@ async def begin_sync_backup_instance( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Sync backup instance again in case of failure - This action will retry last failed operation and will bring backup instance to valid state. + """Sync backup instance again in case of failure This action will retry last failed operation and + will bring backup instance to valid state. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -3068,8 +3139,8 @@ async def begin_sync_backup_instance( parameters: Union[_models.SyncBackupInstanceRequest, JSON, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[None]: - """Sync backup instance again in case of failure - This action will retry last failed operation and will bring backup instance to valid state. + """Sync backup instance again in case of failure This action will retry last failed operation and + will bring backup instance to valid state. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -3179,6 +3250,7 @@ async def _validate_for_restore_initial( } _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 @@ -3192,7 +3264,10 @@ async def _validate_for_restore_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -3202,7 +3277,7 @@ async def _validate_for_restore_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -3429,6 +3504,7 @@ async def _trigger_cross_region_restore_initial( } _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 @@ -3442,7 +3518,10 @@ async def _trigger_cross_region_restore_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.ErrorResponse, response) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -3452,7 +3531,7 @@ async def _trigger_cross_region_restore_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -3666,6 +3745,7 @@ async def _validate_cross_region_restore_initial( } _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 @@ -3679,7 +3759,10 @@ async def _validate_cross_region_restore_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.ErrorResponse, response) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -3689,7 +3772,7 @@ async def _validate_cross_region_restore_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -3922,6 +4005,7 @@ async def get( } _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 @@ -3936,14 +4020,17 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None response_headers = {} if response.status_code == 200: if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BackupVaultResource, response.json()) @@ -3960,6 +4047,198 @@ async def get( return deserialized # type: ignore +class DeletedBackupVaultsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.dataprotection.aio.DataProtectionMgmtClient`'s + :attr:`deleted_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: DataProtectionMgmtClientConfiguration = 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-09-01", + params_added_on={"2025-09-01": ["api_version", "subscription_id", "location", "deleted_vault_name", "accept"]}, + api_versions_list=["2025-09-01", "2026-03-01"], + ) + async def get(self, location: str, deleted_vault_name: str, **kwargs: Any) -> _models.DeletedBackupVaultResource: + """Gets a deleted backup vault. + + :param location: The name of the Azure region. Required. + :type location: str + :param deleted_vault_name: The name of the DeletedBackupVaultResource. Required. + :type deleted_vault_name: str + :return: DeletedBackupVaultResource. The DeletedBackupVaultResource is compatible with + MutableMapping + :rtype: ~azure.mgmt.dataprotection.models.DeletedBackupVaultResource + :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.DeletedBackupVaultResource] = kwargs.pop("cls", None) + + _request = build_deleted_backup_vaults_get_request( + location=location, + deleted_vault_name=deleted_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.DeletedBackupVaultResource, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + @distributed_trace + @api_version_validation( + method_added_on="2025-09-01", + params_added_on={"2025-09-01": ["api_version", "subscription_id", "location", "accept"]}, + api_versions_list=["2025-09-01", "2026-03-01"], + ) + def list_by_location(self, location: str, **kwargs: Any) -> AsyncItemPaged["_models.DeletedBackupVaultResource"]: + """Lists deleted backup vaults by location. + + :param location: The name of the Azure region. Required. + :type location: str + :return: An iterator like instance of DeletedBackupVaultResource + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.dataprotection.models.DeletedBackupVaultResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[List[_models.DeletedBackupVaultResource]] = 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_deleted_backup_vaults_list_by_location_request( + location=location, + 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), 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.DeletedBackupVaultResource], + 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 ResourceGuardsOperations: """ .. warning:: @@ -4022,6 +4301,7 @@ async def get_default_delete_resource_guard_proxy_requests_object( # pylint: di } _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 @@ -4036,11 +4316,14 @@ async def get_default_delete_resource_guard_proxy_requests_object( # pylint: di except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -4121,7 +4404,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -4137,7 +4423,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -4185,6 +4474,7 @@ async def get( } _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 @@ -4199,11 +4489,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardResource, response.json()) @@ -4351,6 +4644,7 @@ async def put( } _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 @@ -4365,11 +4659,14 @@ async def put( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardResource, response.json()) @@ -4522,6 +4819,7 @@ async def patch( } _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 @@ -4536,11 +4834,14 @@ async def patch( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardResource, response.json()) @@ -4597,7 +4898,10 @@ async def delete(self, resource_group_name: str, resource_guards_name: str, **kw if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -4671,7 +4975,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ResourceGuardResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ResourceGuardResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -4687,7 +4994,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -4756,7 +5066,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ResourceGuardResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ResourceGuardResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -4772,7 +5085,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -4824,6 +5140,7 @@ async def get_default_disable_soft_delete_requests_object( # pylint: disable=na } _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 @@ -4838,11 +5155,14 @@ async def get_default_disable_soft_delete_requests_object( # pylint: disable=na except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -4923,7 +5243,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -4939,7 +5262,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -4991,6 +5317,7 @@ async def get_default_update_protected_item_requests_object( # pylint: disable= } _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 @@ -5005,11 +5332,14 @@ async def get_default_update_protected_item_requests_object( # pylint: disable= except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -5090,7 +5420,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -5106,7 +5439,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -5158,6 +5494,7 @@ async def get_default_update_protection_policy_requests_object( # pylint: disab } _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 @@ -5172,11 +5509,14 @@ async def get_default_update_protection_policy_requests_object( # pylint: disab except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -5257,7 +5597,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -5273,7 +5616,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -5325,6 +5671,7 @@ async def get_default_delete_protected_item_requests_object( # pylint: disable= } _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 @@ -5339,11 +5686,14 @@ async def get_default_delete_protected_item_requests_object( # pylint: disable= except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -5424,7 +5774,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -5440,7 +5793,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -5492,6 +5848,7 @@ async def get_default_backup_security_pin_requests_object( # pylint: disable=na } _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 @@ -5506,11 +5863,14 @@ async def get_default_backup_security_pin_requests_object( # pylint: disable=na except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -5591,7 +5951,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -5607,7 +5970,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -5671,6 +6037,7 @@ async def get(self, resource_group_name: str, vault_name: str, **kwargs: Any) -> } _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 @@ -5685,11 +6052,14 @@ async def get(self, resource_group_name: str, vault_name: str, **kwargs: Any) -> except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BackupVaultResource, response.json()) @@ -5698,6 +6068,10 @@ async def get(self, resource_group_name: str, vault_name: str, **kwargs: Any) -> return deserialized # type: ignore + @api_version_validation( + params_added_on={"2025-09-01": ["x_ms_deleted_vault_id"]}, + api_versions_list=["2025-07-01", "2025-09-01", "2026-03-01"], + ) async def _create_or_update_initial( self, resource_group_name: str, @@ -5705,6 +6079,7 @@ async def _create_or_update_initial( parameters: Union[_models.BackupVaultResource, JSON, IO[bytes]], *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, **kwargs: Any ) -> AsyncIterator[bytes]: error_map: MutableMapping = { @@ -5733,6 +6108,7 @@ async def _create_or_update_initial( vault_name=vault_name, subscription_id=self._config.subscription_id, x_ms_authorization_auxiliary=x_ms_authorization_auxiliary, + x_ms_deleted_vault_id=x_ms_deleted_vault_id, content_type=content_type, api_version=self._config.api_version, content=_content, @@ -5744,6 +6120,7 @@ async def _create_or_update_initial( } _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 @@ -5757,7 +6134,10 @@ async def _create_or_update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -5765,7 +6145,7 @@ async def _create_or_update_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() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -5780,6 +6160,7 @@ async def begin_create_or_update( parameters: _models.BackupVaultResource, *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.BackupVaultResource]: @@ -5794,6 +6175,9 @@ async def begin_create_or_update( :type parameters: ~azure.mgmt.dataprotection.models.BackupVaultResource :keyword x_ms_authorization_auxiliary: Default value is None. :paramtype x_ms_authorization_auxiliary: str + :keyword x_ms_deleted_vault_id: The ID of the deleted backup vault to restore from during + undelete flow. Default value is None. + :paramtype x_ms_deleted_vault_id: str :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str @@ -5812,6 +6196,7 @@ async def begin_create_or_update( parameters: JSON, *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.BackupVaultResource]: @@ -5826,6 +6211,9 @@ async def begin_create_or_update( :type parameters: JSON :keyword x_ms_authorization_auxiliary: Default value is None. :paramtype x_ms_authorization_auxiliary: str + :keyword x_ms_deleted_vault_id: The ID of the deleted backup vault to restore from during + undelete flow. Default value is None. + :paramtype x_ms_deleted_vault_id: str :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str @@ -5844,6 +6232,7 @@ async def begin_create_or_update( parameters: IO[bytes], *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.BackupVaultResource]: @@ -5858,6 +6247,9 @@ async def begin_create_or_update( :type parameters: IO[bytes] :keyword x_ms_authorization_auxiliary: Default value is None. :paramtype x_ms_authorization_auxiliary: str + :keyword x_ms_deleted_vault_id: The ID of the deleted backup vault to restore from during + undelete flow. Default value is None. + :paramtype x_ms_deleted_vault_id: str :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str @@ -5869,6 +6261,10 @@ async def begin_create_or_update( """ @distributed_trace_async + @api_version_validation( + params_added_on={"2025-09-01": ["x_ms_deleted_vault_id"]}, + api_versions_list=["2025-07-01", "2025-09-01", "2026-03-01"], + ) async def begin_create_or_update( self, resource_group_name: str, @@ -5876,6 +6272,7 @@ async def begin_create_or_update( parameters: Union[_models.BackupVaultResource, JSON, IO[bytes]], *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, **kwargs: Any ) -> AsyncLROPoller[_models.BackupVaultResource]: """Creates or updates a BackupVault resource belonging to a resource group. @@ -5890,6 +6287,9 @@ async def begin_create_or_update( :type parameters: ~azure.mgmt.dataprotection.models.BackupVaultResource or JSON or IO[bytes] :keyword x_ms_authorization_auxiliary: Default value is None. :paramtype x_ms_authorization_auxiliary: str + :keyword x_ms_deleted_vault_id: The ID of the deleted backup vault to restore from during + undelete flow. Default value is None. + :paramtype x_ms_deleted_vault_id: str :return: An instance of AsyncLROPoller that returns BackupVaultResource. The BackupVaultResource is compatible with MutableMapping :rtype: @@ -5910,6 +6310,7 @@ async def begin_create_or_update( vault_name=vault_name, parameters=parameters, x_ms_authorization_auxiliary=x_ms_authorization_auxiliary, + x_ms_deleted_vault_id=x_ms_deleted_vault_id, content_type=content_type, cls=lambda x, y, z: x, headers=_headers, @@ -5995,6 +6396,7 @@ async def _update_initial( } _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 @@ -6008,7 +6410,10 @@ async def _update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -6016,7 +6421,7 @@ async def _update_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() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -6232,6 +6637,7 @@ async def _delete_initial(self, resource_group_name: str, vault_name: str, **kwa } _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 @@ -6245,7 +6651,10 @@ async def _delete_initial(self, resource_group_name: str, vault_name: str, **kwa except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -6253,7 +6662,7 @@ async def _delete_initial(self, resource_group_name: str, vault_name: str, **kwa 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() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -6379,7 +6788,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BackupVaultResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BackupVaultResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -6395,7 +6807,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -6470,7 +6885,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BackupVaultResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BackupVaultResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -6486,7 +6904,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -6645,6 +7066,7 @@ async def check_name_availability( } _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 @@ -6659,11 +7081,14 @@ async def check_name_availability( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.CheckNameAvailabilityResult, response.json()) @@ -6734,6 +7159,7 @@ async def get( } _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 @@ -6748,11 +7174,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.OperationResource, response.json()) @@ -6806,6 +7235,7 @@ async def _trigger_initial(self, resource_group_name: str, vault_name: str, **kw } _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 @@ -6819,14 +7249,17 @@ async def _trigger_initial(self, resource_group_name: str, vault_name: str, **kw except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + 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")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -6954,6 +7387,7 @@ async def get( } _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 @@ -6968,13 +7402,16 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ExportJobsResult, response.json()) @@ -7046,6 +7483,7 @@ async def get( } _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 @@ -7060,11 +7498,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BaseBackupPolicyResource, response.json()) @@ -7230,6 +7671,7 @@ async def create_or_update( } _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 @@ -7244,11 +7686,14 @@ async def create_or_update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BaseBackupPolicyResource, response.json()) @@ -7308,7 +7753,10 @@ async def delete(self, resource_group_name: str, vault_name: str, backup_policy_ if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -7385,7 +7833,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BaseBackupPolicyResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BaseBackupPolicyResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -7401,7 +7852,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -7583,6 +8037,7 @@ async def find( } _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 @@ -7597,11 +8052,14 @@ async def find( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.AzureBackupFindRestorableTimeRangesResponseResource, response.json()) @@ -7681,6 +8139,7 @@ async def get( } _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 @@ -7695,11 +8154,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.AzureBackupRecoveryPointResource, response.json()) @@ -7795,7 +8257,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.AzureBackupRecoveryPointResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.AzureBackupRecoveryPointResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -7811,7 +8276,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -7881,6 +8349,7 @@ async def get( } _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 @@ -7895,11 +8364,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.AzureBackupJobResource, response.json()) @@ -7979,7 +8451,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.AzureBackupJobResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.AzureBackupJobResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -7995,7 +8470,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -8065,6 +8543,7 @@ async def get( } _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 @@ -8079,11 +8558,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DeletedBackupInstanceResource, response.json()) @@ -8163,7 +8645,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DeletedBackupInstanceResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DeletedBackupInstanceResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -8179,7 +8664,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -8216,6 +8704,7 @@ async def _undelete_initial( } _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 @@ -8229,7 +8718,10 @@ async def _undelete_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -8237,7 +8729,7 @@ async def _undelete_initial( response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -8370,6 +8862,7 @@ async def get( } _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 @@ -8384,11 +8877,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardProxyBaseResource, response.json()) @@ -8554,6 +9050,7 @@ async def create_or_update( } _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 @@ -8568,11 +9065,14 @@ async def create_or_update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardProxyBaseResource, response.json()) @@ -8634,7 +9134,10 @@ async def delete( if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -8711,7 +9214,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ResourceGuardProxyBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ResourceGuardProxyBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -8727,7 +9233,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -8900,6 +9409,7 @@ async def unlock_delete( } _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 @@ -8914,11 +9424,14 @@ async def unlock_delete( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.UnlockDeleteResponse, response.json()) @@ -8986,6 +9499,7 @@ async def get(self, operation_id: str, location: str, **kwargs: Any) -> Optional } _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 @@ -9000,14 +9514,17 @@ async def get(self, operation_id: str, location: str, **kwargs: Any) -> Optional except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None response_headers = {} if response.status_code == 200: if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.OperationJobExtendedInfo, response.json()) @@ -9081,6 +9598,7 @@ async def get(self, location: str, operation_id: str, **kwargs: Any) -> _models. } _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 @@ -9095,11 +9613,14 @@ async def get(self, location: str, operation_id: str, **kwargs: Any) -> _models. except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.OperationResource, response.json()) @@ -9167,6 +9688,7 @@ async def get(self, resource_group_name: str, operation_id: str, **kwargs: Any) } _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 @@ -9181,11 +9703,14 @@ async def get(self, resource_group_name: str, operation_id: str, **kwargs: Any) except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.OperationResource, response.json()) @@ -9225,7 +9750,7 @@ async def check_feature_support( Validates if a feature is supported. - :param location: The location name. Required. + :param location: The name of the Azure region. Required. :type location: str :param parameters: The request body. Required. :type parameters: ~azure.mgmt.dataprotection.models.FeatureValidationRequestBase @@ -9246,7 +9771,7 @@ async def check_feature_support( Validates if a feature is supported. - :param location: The location name. Required. + :param location: The name of the Azure region. Required. :type location: str :param parameters: The request body. Required. :type parameters: JSON @@ -9267,7 +9792,7 @@ async def check_feature_support( Validates if a feature is supported. - :param location: The location name. Required. + :param location: The name of the Azure region. Required. :type location: str :param parameters: The request body. Required. :type parameters: IO[bytes] @@ -9288,7 +9813,7 @@ async def check_feature_support( Validates if a feature is supported. - :param location: The location name. Required. + :param location: The name of the Azure region. Required. :type location: str :param parameters: The request body. Is one of the following types: FeatureValidationRequestBase, JSON, IO[bytes] Required. @@ -9334,6 +9859,7 @@ async def check_feature_support( } _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 @@ -9348,11 +9874,14 @@ async def check_feature_support( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.FeatureValidationResponseBase, response.json()) @@ -9582,7 +10111,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.AzureBackupRecoveryPointResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.AzureBackupRecoveryPointResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -9598,7 +10130,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -9763,6 +10298,7 @@ async def get( } _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 @@ -9777,11 +10313,14 @@ async def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.AzureBackupJobResource, response.json()) @@ -9994,7 +10533,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.AzureBackupJobResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.AzureBackupJobResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -10010,7 +10552,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -10100,7 +10645,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BackupInstanceResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BackupInstanceResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -10116,7 +10664,10 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/__init__.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/__init__.py index e0326280a61b..f9f30edc4fc2 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/__init__.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/__init__.py @@ -20,6 +20,7 @@ AdhocBasedTaggingCriteria, AdhocBasedTriggerContext, AdlsBlobBackupDatasourceParameters, + AdlsBlobBackupDatasourceParametersForAutoProtection, AuthCredentials, AzureBackupDiscreteRecoveryPoint, AzureBackupFindRestorableTimeRangesRequest, @@ -52,7 +53,11 @@ BaseBackupPolicyResource, BasePolicyRule, BaseResourceProperties, + BlobBackupAutoProtectionRule, + BlobBackupAutoProtectionSettings, BlobBackupDatasourceParameters, + BlobBackupDatasourceParametersForAutoProtection, + BlobBackupRuleBasedAutoProtectionSettings, CheckNameAvailabilityRequest, CheckNameAvailabilityResult, CloudError, @@ -76,6 +81,8 @@ DeleteOption, DeletedBackupInstance, DeletedBackupInstanceResource, + DeletedBackupVault, + DeletedBackupVaultResource, DeletionInfo, DppBaseResource, DppIdentityDetails, @@ -125,6 +132,7 @@ RangeBasedItemLevelRestoreCriteria, RecoveryPointDataStoreDetails, Resource, + ResourceDeletionInfo, ResourceGuard, ResourceGuardOperation, ResourceGuardOperationDetail, @@ -174,6 +182,8 @@ ActionType, AlertsState, BCDRSecurityLevel, + BlobBackupPatternType, + BlobBackupRuleMode, CreatedByType, CrossRegionRestoreState, CrossSubscriptionRestoreState, @@ -221,6 +231,7 @@ "AdhocBasedTaggingCriteria", "AdhocBasedTriggerContext", "AdlsBlobBackupDatasourceParameters", + "AdlsBlobBackupDatasourceParametersForAutoProtection", "AuthCredentials", "AzureBackupDiscreteRecoveryPoint", "AzureBackupFindRestorableTimeRangesRequest", @@ -253,7 +264,11 @@ "BaseBackupPolicyResource", "BasePolicyRule", "BaseResourceProperties", + "BlobBackupAutoProtectionRule", + "BlobBackupAutoProtectionSettings", "BlobBackupDatasourceParameters", + "BlobBackupDatasourceParametersForAutoProtection", + "BlobBackupRuleBasedAutoProtectionSettings", "CheckNameAvailabilityRequest", "CheckNameAvailabilityResult", "CloudError", @@ -277,6 +292,8 @@ "DeleteOption", "DeletedBackupInstance", "DeletedBackupInstanceResource", + "DeletedBackupVault", + "DeletedBackupVaultResource", "DeletionInfo", "DppBaseResource", "DppIdentityDetails", @@ -326,6 +343,7 @@ "RangeBasedItemLevelRestoreCriteria", "RecoveryPointDataStoreDetails", "Resource", + "ResourceDeletionInfo", "ResourceGuard", "ResourceGuardOperation", "ResourceGuardOperationDetail", @@ -372,6 +390,8 @@ "ActionType", "AlertsState", "BCDRSecurityLevel", + "BlobBackupPatternType", + "BlobBackupRuleMode", "CreatedByType", "CrossRegionRestoreState", "CrossSubscriptionRestoreState", diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/_enums.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/_enums.py index 97305d69da97..5d66b55a62ba 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/_enums.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/_enums.py @@ -14,10 +14,15 @@ class AbsoluteMarker(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of AbsoluteMarker.""" ALL_BACKUP = "AllBackup" + """ALL_BACKUP.""" FIRST_OF_DAY = "FirstOfDay" + """FIRST_OF_DAY.""" FIRST_OF_MONTH = "FirstOfMonth" + """FIRST_OF_MONTH.""" FIRST_OF_WEEK = "FirstOfWeek" + """FIRST_OF_WEEK.""" FIRST_OF_YEAR = "FirstOfYear" + """FIRST_OF_YEAR.""" class ActionType(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -33,24 +38,47 @@ class AKSVolumeTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of AKSVolumeTypes.""" AZURE_DISK = "AzureDisk" + """AZURE_DISK.""" AZURE_FILE_SHARE_SMB = "AzureFileShareSMB" + """AZURE_FILE_SHARE_SMB.""" class AlertsState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of AlertsState.""" ENABLED = "Enabled" + """ENABLED.""" DISABLED = "Disabled" + """DISABLED.""" class BCDRSecurityLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Security Level of Backup Vault.""" POOR = "Poor" + """POOR.""" FAIR = "Fair" + """FAIR.""" GOOD = "Good" + """GOOD.""" EXCELLENT = "Excellent" + """EXCELLENT.""" NOT_SUPPORTED = "NotSupported" + """NOT_SUPPORTED.""" + + +class BlobBackupPatternType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Pattern type. Only Prefix supported for now.""" + + PREFIX = "Prefix" + """PREFIX.""" + + +class BlobBackupRuleMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Rule mode (Only Exclude supported for now).""" + + EXCLUDE = "Exclude" + """EXCLUDE.""" class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -70,59 +98,86 @@ class CrossRegionRestoreState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """CrossRegionRestore state.""" DISABLED = "Disabled" + """DISABLED.""" ENABLED = "Enabled" + """ENABLED.""" class CrossSubscriptionRestoreState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """CrossSubscriptionRestore state.""" DISABLED = "Disabled" + """DISABLED.""" PERMANENTLY_DISABLED = "PermanentlyDisabled" + """PERMANENTLY_DISABLED.""" ENABLED = "Enabled" + """ENABLED.""" class CurrentProtectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Specifies the current protection state of the resource.""" INVALID = "Invalid" + """INVALID.""" NOT_PROTECTED = "NotProtected" + """NOT_PROTECTED.""" CONFIGURING_PROTECTION = "ConfiguringProtection" + """CONFIGURING_PROTECTION.""" PROTECTION_CONFIGURED = "ProtectionConfigured" + """PROTECTION_CONFIGURED.""" BACKUP_SCHEDULES_SUSPENDED = "BackupSchedulesSuspended" + """BACKUP_SCHEDULES_SUSPENDED.""" RETENTION_SCHEDULES_SUSPENDED = "RetentionSchedulesSuspended" + """RETENTION_SCHEDULES_SUSPENDED.""" PROTECTION_STOPPED = "ProtectionStopped" + """PROTECTION_STOPPED.""" PROTECTION_ERROR = "ProtectionError" + """PROTECTION_ERROR.""" CONFIGURING_PROTECTION_FAILED = "ConfiguringProtectionFailed" + """CONFIGURING_PROTECTION_FAILED.""" SOFT_DELETING = "SoftDeleting" + """SOFT_DELETING.""" SOFT_DELETED = "SoftDeleted" + """SOFT_DELETED.""" UPDATING_PROTECTION = "UpdatingProtection" + """UPDATING_PROTECTION.""" class DataStoreTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta): """type of datastore; Operational/Vault/Archive.""" OPERATIONAL_STORE = "OperationalStore" + """OPERATIONAL_STORE.""" VAULT_STORE = "VaultStore" + """VAULT_STORE.""" ARCHIVE_STORE = "ArchiveStore" + """ARCHIVE_STORE.""" class DayOfWeek(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of DayOfWeek.""" FRIDAY = "Friday" + """FRIDAY.""" MONDAY = "Monday" + """MONDAY.""" SATURDAY = "Saturday" + """SATURDAY.""" SUNDAY = "Sunday" + """SUNDAY.""" THURSDAY = "Thursday" + """THURSDAY.""" TUESDAY = "Tuesday" + """TUESDAY.""" WEDNESDAY = "Wednesday" + """WEDNESDAY.""" class EncryptionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Encryption state of the Backup Vault.""" ENABLED = "Enabled" - """CMK encryption is enabled on the Backup Vault""" + """CMK encryption is enabled on the Backup Vault.""" DISABLED = "Disabled" """CMK encryption is disabled on the Backup Vault. User can not set this state once Encryption State is 'Enabled'.""" @@ -137,25 +192,35 @@ class ExistingResourcePolicy(str, Enum, metaclass=CaseInsensitiveEnumMeta): """ SKIP = "Skip" + """SKIP.""" PATCH = "Patch" + """PATCH.""" class FeatureSupportStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """feature support status.""" INVALID = "Invalid" + """INVALID.""" NOT_SUPPORTED = "NotSupported" + """NOT_SUPPORTED.""" ALPHA_PREVIEW = "AlphaPreview" + """ALPHA_PREVIEW.""" PRIVATE_PREVIEW = "PrivatePreview" + """PRIVATE_PREVIEW.""" PUBLIC_PREVIEW = "PublicPreview" + """PUBLIC_PREVIEW.""" GENERALLY_AVAILABLE = "GenerallyAvailable" + """GENERALLY_AVAILABLE.""" class FeatureType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """backup support feature type.""" INVALID = "Invalid" + """INVALID.""" DATA_SOURCE_TYPE = "DataSourceType" + """DATA_SOURCE_TYPE.""" class IdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -164,39 +229,58 @@ class IdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """ SYSTEM_ASSIGNED = "SystemAssigned" + """SYSTEM_ASSIGNED.""" USER_ASSIGNED = "UserAssigned" + """USER_ASSIGNED.""" class ImmutabilityState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Immutability state.""" DISABLED = "Disabled" + """DISABLED.""" UNLOCKED = "Unlocked" + """UNLOCKED.""" LOCKED = "Locked" + """LOCKED.""" class InfrastructureEncryptionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Enabling/Disabling the Double Encryption state.""" ENABLED = "Enabled" + """ENABLED.""" DISABLED = "Disabled" + """DISABLED.""" class Month(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of Month.""" APRIL = "April" + """APRIL.""" AUGUST = "August" + """AUGUST.""" DECEMBER = "December" + """DECEMBER.""" FEBRUARY = "February" + """FEBRUARY.""" JANUARY = "January" + """JANUARY.""" JULY = "July" + """JULY.""" JUNE = "June" + """JUNE.""" MARCH = "March" + """MARCH.""" MAY = "May" + """MAY.""" NOVEMBER = "November" + """NOVEMBER.""" OCTOBER = "October" + """OCTOBER.""" SEPTEMBER = "September" + """SEPTEMBER.""" class Origin(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -218,23 +302,31 @@ class PersistentVolumeRestoreMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): """ RESTORE_WITH_VOLUME_DATA = "RestoreWithVolumeData" + """RESTORE_WITH_VOLUME_DATA.""" RESTORE_WITHOUT_VOLUME_DATA = "RestoreWithoutVolumeData" + """RESTORE_WITHOUT_VOLUME_DATA.""" class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Provisioning state of the BackupVault resource.""" FAILED = "Failed" + """FAILED.""" PROVISIONING = "Provisioning" + """PROVISIONING.""" SUCCEEDED = "Succeeded" + """SUCCEEDED.""" UNKNOWN = "Unknown" + """UNKNOWN.""" UPDATING = "Updating" + """UPDATING.""" class RecoveryOption(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Recovery Option.""" FAIL_IF_EXISTS = "FailIfExists" + """FAIL_IF_EXISTS.""" class RecoveryPointCompletionState(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -243,136 +335,187 @@ class RecoveryPointCompletionState(str, Enum, metaclass=CaseInsensitiveEnumMeta) """ COMPLETED = "Completed" + """COMPLETED.""" PARTIAL = "Partial" + """PARTIAL.""" class RehydrationPriority(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Priority to be used for rehydration. Values High or Standard.""" INVALID = "Invalid" + """INVALID.""" HIGH = "High" + """HIGH.""" STANDARD = "Standard" + """STANDARD.""" class RehydrationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of RehydrationStatus.""" CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + """CREATE_IN_PROGRESS.""" COMPLETED = "COMPLETED" + """COMPLETED.""" DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + """DELETE_IN_PROGRESS.""" DELETED = "DELETED" + """DELETED.""" FAILED = "FAILED" + """FAILED.""" class ResourceMoveState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Resource move state for backup vault.""" UNKNOWN = "Unknown" + """UNKNOWN.""" IN_PROGRESS = "InProgress" + """IN_PROGRESS.""" PREPARE_FAILED = "PrepareFailed" + """PREPARE_FAILED.""" COMMIT_FAILED = "CommitFailed" + """COMMIT_FAILED.""" FAILED = "Failed" + """FAILED.""" PREPARE_TIMEDOUT = "PrepareTimedout" + """PREPARE_TIMEDOUT.""" COMMIT_TIMEDOUT = "CommitTimedout" + """COMMIT_TIMEDOUT.""" CRITICAL_FAILURE = "CriticalFailure" + """CRITICAL_FAILURE.""" PARTIAL_SUCCESS = "PartialSuccess" + """PARTIAL_SUCCESS.""" MOVE_SUCCEEDED = "MoveSucceeded" + """MOVE_SUCCEEDED.""" class ResourcePropertiesObjectType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of the specific object - used for deserializing.""" DEFAULT_RESOURCE_PROPERTIES = "DefaultResourceProperties" + """DEFAULT_RESOURCE_PROPERTIES.""" class RestoreSourceDataStoreType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Gets or sets the type of the source data store.""" OPERATIONAL_STORE = "OperationalStore" + """OPERATIONAL_STORE.""" VAULT_STORE = "VaultStore" + """VAULT_STORE.""" ARCHIVE_STORE = "ArchiveStore" + """ARCHIVE_STORE.""" class RestoreTargetLocationType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """Denotes the target location where the data will be restored, - string value for the enum + """Denotes the target location where the data will be restored, string value for the enum {Microsoft.Internal.AzureBackup.DataProtection.Common.Interface.RestoreTargetLocationType}. """ INVALID = "Invalid" + """INVALID.""" AZURE_BLOBS = "AzureBlobs" + """AZURE_BLOBS.""" AZURE_FILES = "AzureFiles" + """AZURE_FILES.""" class SecretStoreType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Gets or sets the type of secret store.""" INVALID = "Invalid" + """INVALID.""" AZURE_KEY_VAULT = "AzureKeyVault" + """AZURE_KEY_VAULT.""" class SecureScoreLevel(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Secure Score of Backup Vault.""" NONE = "None" + """NONE.""" MINIMUM = "Minimum" + """MINIMUM.""" ADEQUATE = "Adequate" + """ADEQUATE.""" MAXIMUM = "Maximum" + """MAXIMUM.""" NOT_SUPPORTED = "NotSupported" + """NOT_SUPPORTED.""" class SoftDeleteState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """State of soft delete.""" OFF = "Off" - """Soft Delete is turned off for the BackupVault""" + """Soft Delete is turned off for the BackupVault.""" ON = "On" - """Soft Delete is enabled for the BackupVault but can be turned off""" + """Soft Delete is enabled for the BackupVault but can be turned off.""" ALWAYS_ON = "AlwaysOn" - """Soft Delete is permanently enabled for the BackupVault and the setting cannot be changed""" + """Soft Delete is permanently enabled for the BackupVault and the setting cannot be changed.""" class SourceDataStoreType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Gets or sets the type of the source data store.""" ARCHIVE_STORE = "ArchiveStore" + """ARCHIVE_STORE.""" SNAPSHOT_STORE = "SnapshotStore" + """SNAPSHOT_STORE.""" OPERATIONAL_STORE = "OperationalStore" + """OPERATIONAL_STORE.""" VAULT_STORE = "VaultStore" + """VAULT_STORE.""" class Status(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Specifies the protection status of the resource.""" CONFIGURING_PROTECTION = "ConfiguringProtection" + """CONFIGURING_PROTECTION.""" CONFIGURING_PROTECTION_FAILED = "ConfiguringProtectionFailed" + """CONFIGURING_PROTECTION_FAILED.""" PROTECTION_CONFIGURED = "ProtectionConfigured" + """PROTECTION_CONFIGURED.""" PROTECTION_STOPPED = "ProtectionStopped" + """PROTECTION_STOPPED.""" SOFT_DELETED = "SoftDeleted" + """SOFT_DELETED.""" SOFT_DELETING = "SoftDeleting" + """SOFT_DELETING.""" class StorageSettingStoreTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Gets or sets the type of the datastore.""" ARCHIVE_STORE = "ArchiveStore" + """ARCHIVE_STORE.""" OPERATIONAL_STORE = "OperationalStore" + """OPERATIONAL_STORE.""" VAULT_STORE = "VaultStore" + """VAULT_STORE.""" class StorageSettingTypes(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Gets or sets the type.""" GEO_REDUNDANT = "GeoRedundant" + """GEO_REDUNDANT.""" LOCALLY_REDUNDANT = "LocallyRedundant" + """LOCALLY_REDUNDANT.""" ZONE_REDUNDANT = "ZoneRedundant" + """ZONE_REDUNDANT.""" class SyncType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Field indicating sync type e.g. to sync only in case of failure or in all cases.""" DEFAULT = "Default" + """DEFAULT.""" FORCE_RESYNC = "ForceResync" + """FORCE_RESYNC.""" class ValidationType(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -381,14 +524,21 @@ class ValidationType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """ SHALLOW_VALIDATION = "ShallowValidation" + """SHALLOW_VALIDATION.""" DEEP_VALIDATION = "DeepValidation" + """DEEP_VALIDATION.""" class WeekNumber(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of WeekNumber.""" FIRST = "First" + """FIRST.""" FOURTH = "Fourth" + """FOURTH.""" LAST = "Last" + """LAST.""" SECOND = "Second" + """SECOND.""" THIRD = "Third" + """THIRD.""" diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/_models.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/_models.py index 2d4151625c9d..761dcb302318 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/_models.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/models/_models.py @@ -257,7 +257,8 @@ class BackupDatasourceParameters(_Model): """Parameters for Backup Datasource. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - AdlsBlobBackupDatasourceParameters, BlobBackupDatasourceParameters, + AdlsBlobBackupDatasourceParameters, AdlsBlobBackupDatasourceParametersForAutoProtection, + BlobBackupDatasourceParameters, BlobBackupDatasourceParametersForAutoProtection, KubernetesClusterBackupDatasourceParameters :ivar object_type: Type of the specific object - used for deserializing. Required. Default @@ -365,6 +366,47 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: self.object_type = "AdlsBlobBackupDatasourceParameters" # type: ignore +class AdlsBlobBackupDatasourceParametersForAutoProtection( + BackupDatasourceParameters, discriminator="AdlsBlobBackupDatasourceParametersForAutoProtection" +): # pylint: disable=name-too-long + """Parameters to be used during configuration of backup of azure data lake storage account blobs + using AutoProtection settings. + + :ivar auto_protection_settings: AutoProtection settings. Required. + :vartype auto_protection_settings: + ~azure.mgmt.dataprotection.models.BlobBackupRuleBasedAutoProtectionSettings + :ivar object_type: Type of the specific object - used for deserializing. Required. Default + value is "AdlsBlobBackupDatasourceParametersForAutoProtection". + :vartype object_type: str + """ + + auto_protection_settings: "_models.BlobBackupRuleBasedAutoProtectionSettings" = rest_field( + name="autoProtectionSettings", visibility=["read", "create", "update", "delete", "query"] + ) + """AutoProtection settings. Required.""" + object_type: Literal["AdlsBlobBackupDatasourceParametersForAutoProtection"] = rest_discriminator(name="objectType", visibility=["read", "create", "update", "delete", "query"]) # type: ignore + """Type of the specific object - used for deserializing. Required. Default value is + \"AdlsBlobBackupDatasourceParametersForAutoProtection\".""" + + @overload + def __init__( + self, + *, + auto_protection_settings: "_models.BlobBackupRuleBasedAutoProtectionSettings", + ) -> 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) + self.object_type = "AdlsBlobBackupDatasourceParametersForAutoProtection" # type: ignore + + class AuthCredentials(_Model): """Base class for different types of authentication credentials. @@ -1047,8 +1089,8 @@ class AzureBackupRestoreRequest(_Model): :ivar resource_guard_operation_requests: ResourceGuardOperationRequests on which LAC check will be performed. :vartype resource_guard_operation_requests: list[str] - :ivar identity_details: Contains information of the Identity Details for the BI. - If it is null, default will be considered as System Assigned. + :ivar identity_details: Contains information of the Identity Details for the BI. If it is null, + default will be considered as System Assigned. :vartype identity_details: ~azure.mgmt.dataprotection.models.IdentityDetails """ @@ -1075,8 +1117,8 @@ class AzureBackupRestoreRequest(_Model): identity_details: Optional["_models.IdentityDetails"] = rest_field( name="identityDetails", visibility=["read", "create", "update", "delete", "query"] ) - """Contains information of the Identity Details for the BI. - If it is null, default will be considered as System Assigned.""" + """Contains information of the Identity Details for the BI. If it is null, default will be + considered as System Assigned.""" @overload def __init__( @@ -1120,8 +1162,8 @@ class AzureBackupRecoveryPointBasedRestoreRequest( :ivar resource_guard_operation_requests: ResourceGuardOperationRequests on which LAC check will be performed. :vartype resource_guard_operation_requests: list[str] - :ivar identity_details: Contains information of the Identity Details for the BI. - If it is null, default will be considered as System Assigned. + :ivar identity_details: Contains information of the Identity Details for the BI. If it is null, + default will be considered as System Assigned. :vartype identity_details: ~azure.mgmt.dataprotection.models.IdentityDetails :ivar recovery_point_id: Required. :vartype recovery_point_id: str @@ -1218,8 +1260,8 @@ class AzureBackupRecoveryTimeBasedRestoreRequest( :ivar resource_guard_operation_requests: ResourceGuardOperationRequests on which LAC check will be performed. :vartype resource_guard_operation_requests: list[str] - :ivar identity_details: Contains information of the Identity Details for the BI. - If it is null, default will be considered as System Assigned. + :ivar identity_details: Contains information of the Identity Details for the BI. If it is null, + default will be considered as System Assigned. :vartype identity_details: ~azure.mgmt.dataprotection.models.IdentityDetails :ivar recovery_point_time: The recovery time in ISO 8601 format example - 2020-08-14T17:30:00.0000000Z. Required. @@ -1322,8 +1364,8 @@ class AzureBackupRestoreWithRehydrationRequest( :ivar resource_guard_operation_requests: ResourceGuardOperationRequests on which LAC check will be performed. :vartype resource_guard_operation_requests: list[str] - :ivar identity_details: Contains information of the Identity Details for the BI. - If it is null, default will be considered as System Assigned. + :ivar identity_details: Contains information of the Identity Details for the BI. If it is null, + default will be considered as System Assigned. :vartype identity_details: ~azure.mgmt.dataprotection.models.IdentityDetails :ivar recovery_point_id: Required. :vartype recovery_point_id: str @@ -1685,8 +1727,8 @@ class BackupInstance(_Model): validations from /validateForBackup API will run again. Known values are: "ShallowValidation" and "DeepValidation". :vartype validation_type: str or ~azure.mgmt.dataprotection.models.ValidationType - :ivar identity_details: Contains information of the Identity Details for the BI. - If it is null, default will be considered as System Assigned. + :ivar identity_details: Contains information of the Identity Details for the BI. If it is null, + default will be considered as System Assigned. :vartype identity_details: ~azure.mgmt.dataprotection.models.IdentityDetails :ivar object_type: Required. :vartype object_type: str @@ -1743,8 +1785,8 @@ class BackupInstance(_Model): identity_details: Optional["_models.IdentityDetails"] = rest_field( name="identityDetails", visibility=["read", "create", "update", "delete", "query"] ) - """Contains information of the Identity Details for the BI. - If it is null, default will be considered as System Assigned.""" + """Contains information of the Identity Details for the BI. If it is null, default will be + considered as System Assigned.""" object_type: str = rest_field(name="objectType", visibility=["read", "create", "update", "delete", "query"]) """Required.""" @@ -1902,21 +1944,75 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class BackupSchedule(_Model): """Schedule for backup. - :ivar repeating_time_intervals: Repeating time interval which only support the following ISO - 8601 format [R/startDateTime/Duration]. Example: R/2007-03-01T13:00:00Z/P1Y2M10DT2H30M. - Required. + :ivar repeating_time_intervals: Repeating time intervals that define the backup schedule. Each + value must follow the format: ``R/YYYY-MM-DDThh:mm:ss[.fff][Z|(+/-)hh:mm]/Duration`` Only the + exact formats listed below are supported. Other ISO 8601 variations are not accepted. Supported + time formats: + + * `Thh:mm:ss.fff` (with milliseconds) + * `Thh:mm:ss` (with seconds) + * `Thh:mm` (hours and minutes only) + + A timezone indicator (``Z``, ``+hh:mm``, or ``-hh:mm``) may be appended to any of the + above. + + Unsupported formats include compact notation such as ``T1430``, ``T143045``, or ``T14.5``. + + Examples: + + * `R/2023-10-15T14:30:00Z/P1W` + * `R/2023-10-15T14:30:45.123+05:30/P1D` + * `R/2023-10-15T14:30Z/P1D`. Required. :vartype repeating_time_intervals: list[str] - :ivar time_zone: Time zone for a schedule. Example: Pacific Standard Time. + :ivar time_zone: Time Zone for a schedule. Supported timezone indicators include: + + * 'Z' for UTC + * '+00:00' + * '+05:30' + * '-08:00' + + Examples: + + * 2023-10-15T14:30:45Z + * 2023-10-15T14:30:45.123+05:30 + * 2023-10-15T14:30-08:00. :vartype time_zone: str """ repeating_time_intervals: list[str] = rest_field( name="repeatingTimeIntervals", visibility=["read", "create", "update", "delete", "query"] ) - """Repeating time interval which only support the following ISO 8601 format - [R/startDateTime/Duration]. Example: R/2007-03-01T13:00:00Z/P1Y2M10DT2H30M. Required.""" + """Repeating time intervals that define the backup schedule. Each value must follow the format: + ``R/YYYY-MM-DDThh:mm:ss[.fff][Z|(+/-)hh:mm]/Duration`` Only the exact formats listed below are + supported. Other ISO 8601 variations are not accepted. Supported time formats: + + * `Thh:mm:ss.fff` (with milliseconds) + * `Thh:mm:ss` (with seconds) + * `Thh:mm` (hours and minutes only) + + A timezone indicator (``Z``, ``+hh:mm``, or ``-hh:mm``) may be appended to any of the + above. + + Unsupported formats include compact notation such as ``T1430``, ``T143045``, or ``T14.5``. + + Examples: + + * `R/2023-10-15T14:30:00Z/P1W` + * `R/2023-10-15T14:30:45.123+05:30/P1D` + * `R/2023-10-15T14:30Z/P1D`. Required.""" time_zone: Optional[str] = rest_field(name="timeZone", visibility=["read", "create", "update", "delete", "query"]) - """Time zone for a schedule. Example: Pacific Standard Time.""" + """Time Zone for a schedule. Supported timezone indicators include: + + * 'Z' for UTC + * '+00:00' + * '+05:30' + * '-08:00' + + Examples: + + * 2023-10-15T14:30:45Z + * 2023-10-15T14:30:45.123+05:30 + * 2023-10-15T14:30-08:00.""" @overload def __init__( @@ -1953,7 +2049,7 @@ class BackupVault(_Model): :vartype resource_move_details: ~azure.mgmt.dataprotection.models.ResourceMoveDetails :ivar security_settings: Security Settings. :vartype security_settings: ~azure.mgmt.dataprotection.models.SecuritySettings - :ivar storage_settings: Storage Settings. Required. + :ivar storage_settings: Storage Settings. :vartype storage_settings: list[~azure.mgmt.dataprotection.models.StorageSetting] :ivar is_vault_protected_by_resource_guard: Is vault protected by resource guard. :vartype is_vault_protected_by_resource_guard: bool @@ -1995,10 +2091,10 @@ class BackupVault(_Model): name="securitySettings", visibility=["read", "create", "update", "delete", "query"] ) """Security Settings.""" - storage_settings: list["_models.StorageSetting"] = rest_field( + storage_settings: Optional[list["_models.StorageSetting"]] = rest_field( name="storageSettings", visibility=["read", "create", "update", "delete", "query"] ) - """Storage Settings. Required.""" + """Storage Settings.""" is_vault_protected_by_resource_guard: Optional[bool] = rest_field( name="isVaultProtectedByResourceGuard", visibility=["read"] ) @@ -2028,9 +2124,9 @@ class BackupVault(_Model): def __init__( self, *, - storage_settings: list["_models.StorageSetting"], monitoring_settings: Optional["_models.MonitoringSettings"] = None, security_settings: Optional["_models.SecuritySettings"] = None, + storage_settings: Optional[list["_models.StorageSetting"]] = None, feature_settings: Optional["_models.FeatureSettings"] = None, resource_guard_operation_requests: Optional[list[str]] = None, replicated_regions: Optional[list[str]] = None, @@ -2222,6 +2318,177 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class BlobBackupAutoProtectionRule(_Model): + """Indicates a Blob Backup Auto Protection Rule. + + :ivar object_type: Type of the specific object - used for deserializing. Required. + :vartype object_type: str + :ivar mode: Exclude removes candidates (after inclusion). Required. "Exclude" + :vartype mode: str or ~azure.mgmt.dataprotection.models.BlobBackupRuleMode + :ivar type: Pattern type: Prefix, only pattern type supported for now. Required. "Prefix" + :vartype type: str or ~azure.mgmt.dataprotection.models.BlobBackupPatternType + :ivar pattern: The string pattern to evaluate against container names. For now this accepts + literal strings only (no wildcards or regex). Required. + :vartype pattern: str + """ + + object_type: str = rest_field(name="objectType", visibility=["read", "create", "update", "delete", "query"]) + """Type of the specific object - used for deserializing. Required.""" + mode: Union[str, "_models.BlobBackupRuleMode"] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Exclude removes candidates (after inclusion). Required. \"Exclude\"""" + type: Union[str, "_models.BlobBackupPatternType"] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Pattern type: Prefix, only pattern type supported for now. Required. \"Prefix\"""" + pattern: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """The string pattern to evaluate against container names. For now this accepts literal strings + only (no wildcards or regex). Required.""" + + @overload + def __init__( + self, + *, + object_type: str, + mode: Union[str, "_models.BlobBackupRuleMode"], + type: Union[str, "_models.BlobBackupPatternType"], + pattern: 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 BlobBackupAutoProtectionSettings(_Model): + """The settings for Blob Backup Auto Protection. + + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + BlobBackupRuleBasedAutoProtectionSettings + + :ivar object_type: Type of the specific object - used for deserializing. Required. Default + value is None. + :vartype object_type: str + :ivar enabled: Flag to enable whether auto protection. Required. + :vartype enabled: bool + """ + + __mapping__: dict[str, _Model] = {} + object_type: str = rest_discriminator(name="objectType", visibility=["read", "create", "update", "delete", "query"]) + """Type of the specific object - used for deserializing. Required. Default value is None.""" + enabled: bool = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Flag to enable whether auto protection. Required.""" + + @overload + def __init__( + self, + *, + object_type: str, + enabled: bool, + ) -> 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 BlobBackupDatasourceParametersForAutoProtection( + BackupDatasourceParameters, discriminator="BlobBackupDatasourceParametersForAutoProtection" +): # pylint: disable=name-too-long + """Paramters to be used during configuration of backup of blobs using AutoProtection settings. + + :ivar auto_protection_settings: AutoProtection settings. Required. + :vartype auto_protection_settings: + ~azure.mgmt.dataprotection.models.BlobBackupRuleBasedAutoProtectionSettings + :ivar object_type: Type of the specific object - used for deserializing. Required. Default + value is "BlobBackupDatasourceParametersForAutoProtection". + :vartype object_type: str + """ + + auto_protection_settings: "_models.BlobBackupRuleBasedAutoProtectionSettings" = rest_field( + name="autoProtectionSettings", visibility=["read", "create", "update", "delete", "query"] + ) + """AutoProtection settings. Required.""" + object_type: Literal["BlobBackupDatasourceParametersForAutoProtection"] = rest_discriminator(name="objectType", visibility=["read", "create", "update", "delete", "query"]) # type: ignore + """Type of the specific object - used for deserializing. Required. Default value is + \"BlobBackupDatasourceParametersForAutoProtection\".""" + + @overload + def __init__( + self, + *, + auto_protection_settings: "_models.BlobBackupRuleBasedAutoProtectionSettings", + ) -> 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) + self.object_type = "BlobBackupDatasourceParametersForAutoProtection" # type: ignore + + +class BlobBackupRuleBasedAutoProtectionSettings( + BlobBackupAutoProtectionSettings, discriminator="BlobBackupRuleBasedAutoProtectionSettings" +): # pylint: disable=name-too-long + """Parameters to be used for Blob Backup Rule Based Auto Protection settings. + + :ivar enabled: Flag to enable whether auto protection. Required. + :vartype enabled: bool + :ivar object_type: Required. Default value is "BlobBackupRuleBasedAutoProtectionSettings". + :vartype object_type: str + :ivar rules: Rules are evaluated in the order provided. Inclusion adds candidates; exclusion + removes candidates. If no rules are present, all containers are considered eligible when + enabled = true. + :vartype rules: list[~azure.mgmt.dataprotection.models.BlobBackupAutoProtectionRule] + """ + + object_type: Literal["BlobBackupRuleBasedAutoProtectionSettings"] = rest_discriminator(name="objectType", visibility=["read", "create", "update", "delete", "query"]) # type: ignore + """Required. Default value is \"BlobBackupRuleBasedAutoProtectionSettings\".""" + rules: Optional[list["_models.BlobBackupAutoProtectionRule"]] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Rules are evaluated in the order provided. Inclusion adds candidates; exclusion removes + candidates. If no rules are present, all containers are considered eligible when enabled = + true.""" + + @overload + def __init__( + self, + *, + enabled: bool, + rules: Optional[list["_models.BlobBackupAutoProtectionRule"]] = 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) + self.object_type = "BlobBackupRuleBasedAutoProtectionSettings" # type: ignore + + class CheckNameAvailabilityRequest(_Model): """CheckNameAvailability Request. @@ -2934,11 +3201,12 @@ class DefaultResourceProperties(BaseResourceProperties, discriminator="DefaultRe """Default source properties. :ivar object_type: Type of the specific object - used for deserializing. Required. + DEFAULT_RESOURCE_PROPERTIES. :vartype object_type: str or ~azure.mgmt.dataprotection.models.DEFAULT_RESOURCE_PROPERTIES """ object_type: Literal[ResourcePropertiesObjectType.DEFAULT_RESOURCE_PROPERTIES] = rest_discriminator(name="objectType", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """Type of the specific object - used for deserializing. Required.""" + """Type of the specific object - used for deserializing. Required. DEFAULT_RESOURCE_PROPERTIES.""" @overload def __init__( @@ -2992,8 +3260,8 @@ class DeletedBackupInstance(BackupInstance): validations from /validateForBackup API will run again. Known values are: "ShallowValidation" and "DeepValidation". :vartype validation_type: str or ~azure.mgmt.dataprotection.models.ValidationType - :ivar identity_details: Contains information of the Identity Details for the BI. - If it is null, default will be considered as System Assigned. + :ivar identity_details: Contains information of the Identity Details for the BI. If it is null, + default will be considered as System Assigned. :vartype identity_details: ~azure.mgmt.dataprotection.models.IdentityDetails :ivar object_type: Required. :vartype object_type: str @@ -3071,6 +3339,176 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class DeletedBackupVault(_Model): + """Deleted Backup Vault - uses composition with BackupVault and additional deletion metadata. + + :ivar monitoring_settings: Monitoring Settings. + :vartype monitoring_settings: ~azure.mgmt.dataprotection.models.MonitoringSettings + :ivar provisioning_state: Provisioning state of the BackupVault resource. Known values are: + "Failed", "Provisioning", "Succeeded", "Unknown", and "Updating". + :vartype provisioning_state: str or ~azure.mgmt.dataprotection.models.ProvisioningState + :ivar resource_move_state: Resource move state for backup vault. Known values are: "Unknown", + "InProgress", "PrepareFailed", "CommitFailed", "Failed", "PrepareTimedout", "CommitTimedout", + "CriticalFailure", "PartialSuccess", and "MoveSucceeded". + :vartype resource_move_state: str or ~azure.mgmt.dataprotection.models.ResourceMoveState + :ivar resource_move_details: Resource move details for backup vault. + :vartype resource_move_details: ~azure.mgmt.dataprotection.models.ResourceMoveDetails + :ivar security_settings: Security Settings. + :vartype security_settings: ~azure.mgmt.dataprotection.models.SecuritySettings + :ivar storage_settings: Storage Settings. + :vartype storage_settings: list[~azure.mgmt.dataprotection.models.StorageSetting] + :ivar is_vault_protected_by_resource_guard: Is vault protected by resource guard. + :vartype is_vault_protected_by_resource_guard: bool + :ivar feature_settings: Feature Settings. + :vartype feature_settings: ~azure.mgmt.dataprotection.models.FeatureSettings + :ivar secure_score: Secure Score of Backup Vault. Known values are: "None", "Minimum", + "Adequate", "Maximum", and "NotSupported". + :vartype secure_score: str or ~azure.mgmt.dataprotection.models.SecureScoreLevel + :ivar bcdr_security_level: Security Level of Backup Vault. Known values are: "Poor", "Fair", + "Good", "Excellent", and "NotSupported". + :vartype bcdr_security_level: str or ~azure.mgmt.dataprotection.models.BCDRSecurityLevel + :ivar resource_guard_operation_requests: ResourceGuardOperationRequests on which LAC check will + be performed. + :vartype resource_guard_operation_requests: list[str] + :ivar replicated_regions: List of replicated regions for Backup Vault. + :vartype replicated_regions: list[str] + :ivar original_backup_vault_id: Resource Id of the original backup vault. Required. + :vartype original_backup_vault_id: str + :ivar original_backup_vault_name: Resource name of the original backup vault. Required. + :vartype original_backup_vault_name: str + :ivar original_backup_vault_resource_path: Resource path of the original backup vault. + Required. + :vartype original_backup_vault_resource_path: str + :ivar resource_deletion_info: Deletion info for the tracked resource (Backup Vault). Required. + :vartype resource_deletion_info: ~azure.mgmt.dataprotection.models.ResourceDeletionInfo + """ + + monitoring_settings: Optional["_models.MonitoringSettings"] = rest_field( + name="monitoringSettings", visibility=["read", "create", "update", "delete", "query"] + ) + """Monitoring Settings.""" + provisioning_state: Optional[Union[str, "_models.ProvisioningState"]] = rest_field( + name="provisioningState", visibility=["read"] + ) + """Provisioning state of the BackupVault resource. Known values are: \"Failed\", \"Provisioning\", + \"Succeeded\", \"Unknown\", and \"Updating\".""" + resource_move_state: Optional[Union[str, "_models.ResourceMoveState"]] = rest_field( + name="resourceMoveState", visibility=["read"] + ) + """Resource move state for backup vault. Known values are: \"Unknown\", \"InProgress\", + \"PrepareFailed\", \"CommitFailed\", \"Failed\", \"PrepareTimedout\", \"CommitTimedout\", + \"CriticalFailure\", \"PartialSuccess\", and \"MoveSucceeded\".""" + resource_move_details: Optional["_models.ResourceMoveDetails"] = rest_field( + name="resourceMoveDetails", visibility=["read"] + ) + """Resource move details for backup vault.""" + security_settings: Optional["_models.SecuritySettings"] = rest_field( + name="securitySettings", visibility=["read", "create", "update", "delete", "query"] + ) + """Security Settings.""" + storage_settings: Optional[list["_models.StorageSetting"]] = rest_field( + name="storageSettings", visibility=["read", "create", "update", "delete", "query"] + ) + """Storage Settings.""" + is_vault_protected_by_resource_guard: Optional[bool] = rest_field( + name="isVaultProtectedByResourceGuard", visibility=["read"] + ) + """Is vault protected by resource guard.""" + feature_settings: Optional["_models.FeatureSettings"] = rest_field( + name="featureSettings", visibility=["read", "create", "update", "delete", "query"] + ) + """Feature Settings.""" + secure_score: Optional[Union[str, "_models.SecureScoreLevel"]] = rest_field(name="secureScore", visibility=["read"]) + """Secure Score of Backup Vault. Known values are: \"None\", \"Minimum\", \"Adequate\", + \"Maximum\", and \"NotSupported\".""" + bcdr_security_level: Optional[Union[str, "_models.BCDRSecurityLevel"]] = rest_field( + name="bcdrSecurityLevel", visibility=["read"] + ) + """Security Level of Backup Vault. Known values are: \"Poor\", \"Fair\", \"Good\", \"Excellent\", + and \"NotSupported\".""" + resource_guard_operation_requests: Optional[list[str]] = rest_field( + name="resourceGuardOperationRequests", visibility=["read", "create", "update", "delete", "query"] + ) + """ResourceGuardOperationRequests on which LAC check will be performed.""" + replicated_regions: Optional[list[str]] = rest_field( + name="replicatedRegions", visibility=["read", "create", "update", "delete", "query"] + ) + """List of replicated regions for Backup Vault.""" + original_backup_vault_id: str = rest_field(name="originalBackupVaultId", visibility=["read"]) + """Resource Id of the original backup vault. Required.""" + original_backup_vault_name: str = rest_field(name="originalBackupVaultName", visibility=["read"]) + """Resource name of the original backup vault. Required.""" + original_backup_vault_resource_path: str = rest_field(name="originalBackupVaultResourcePath", visibility=["read"]) + """Resource path of the original backup vault. Required.""" + resource_deletion_info: "_models.ResourceDeletionInfo" = rest_field( + name="resourceDeletionInfo", visibility=["read"] + ) + """Deletion info for the tracked resource (Backup Vault). Required.""" + + @overload + def __init__( + self, + *, + monitoring_settings: Optional["_models.MonitoringSettings"] = None, + security_settings: Optional["_models.SecuritySettings"] = None, + storage_settings: Optional[list["_models.StorageSetting"]] = None, + feature_settings: Optional["_models.FeatureSettings"] = None, + resource_guard_operation_requests: Optional[list[str]] = None, + replicated_regions: 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 DeletedBackupVaultResource(ProxyResource): + """Deleted Backup Vault Resource (available from version 2025-09-01). + + :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.dataprotection.models.SystemData + :ivar properties: The resource-specific properties for this resource. + :vartype properties: ~azure.mgmt.dataprotection.models.DeletedBackupVault + """ + + properties: Optional["_models.DeletedBackupVault"] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """The resource-specific properties for this resource.""" + + @overload + def __init__( + self, + *, + properties: Optional["_models.DeletedBackupVault"] = 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 DeletionInfo(_Model): """Deletion Info. @@ -3593,9 +4031,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class FetchSecondaryRPsRequestParameters(_Model): - """Information about BI whose secondary RecoveryPoints are requested - Source region and - BI ARM path. + """Information about BI whose secondary RecoveryPoints are requested Source region and BI ARM + path. :ivar source_region: Source region in which BackupInstance is located. :vartype source_region: str @@ -4700,7 +5137,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class OperationDisplay(_Model): - """Localized display information for and operation. + """Localized display information for an operation. :ivar provider: The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". @@ -4805,9 +5242,8 @@ class OperationResource(_Model): :ivar end_time: End time of the operation. :vartype end_time: ~datetime.datetime :ivar error: Required if status == failed or status == canceled. This is the OData v4 error - format, used by the RPC and will go into the v2.2 Azure REST API guidelines. - The full set of optional properties (e.g. inner errors / details) can be found in the "Error - Response" section. + format, used by the RPC and will go into the v2.2 Azure REST API guidelines. The full set of + optional properties (e.g. inner errors / details) can be found in the "Error Response" section. :vartype error: ~azure.mgmt.dataprotection.models.Error :ivar id: It should match what is used to GET the operation result. :vartype id: str @@ -4828,9 +5264,8 @@ class OperationResource(_Model): """End time of the operation.""" error: Optional["_models.Error"] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """Required if status == failed or status == canceled. This is the OData v4 error format, used by - the RPC and will go into the v2.2 Azure REST API guidelines. - The full set of optional properties (e.g. inner errors / details) can be found in the \"Error - Response\" section.""" + the RPC and will go into the v2.2 Azure REST API guidelines. The full set of optional + properties (e.g. inner errors / details) can be found in the \"Error Response\" section.""" id: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """It should match what is used to GET the operation result.""" name: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) @@ -5222,6 +5657,29 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class ResourceDeletionInfo(_Model): + """Deletion info for a tracked resource (Backup Vault). + + :ivar deletion_time: Specifies time of deletion for the tracked resource (Backup Vault). + :vartype deletion_time: ~datetime.datetime + :ivar scheduled_purge_time: Specifies the scheduled purge time for the tracked resource (Backup + Vault). + :vartype scheduled_purge_time: ~datetime.datetime + :ivar delete_activity_id: Delete activity ID for troubleshooting the deletion of the tracked + resource. + :vartype delete_activity_id: str + """ + + deletion_time: Optional[datetime.datetime] = rest_field(name="deletionTime", visibility=["read"], format="rfc3339") + """Specifies time of deletion for the tracked resource (Backup Vault).""" + scheduled_purge_time: Optional[datetime.datetime] = rest_field( + name="scheduledPurgeTime", visibility=["read"], format="rfc3339" + ) + """Specifies the scheduled purge time for the tracked resource (Backup Vault).""" + delete_activity_id: Optional[str] = rest_field(name="deleteActivityId", visibility=["read"]) + """Delete activity ID for troubleshooting the deletion of the tracked resource.""" + + class ResourceGuard(_Model): """ResourceGuard. @@ -5745,8 +6203,7 @@ class ScheduleBasedBackupCriteria(BackupCriteria, discriminator="ScheduleBasedBa """Schedule based backup criteria. :ivar absolute_criteria: it contains absolute values like "AllBackup" / "FirstOfDay" / - "FirstOfWeek" / "FirstOfMonth" - and should be part of AbsoluteMarker enum. + "FirstOfWeek" / "FirstOfMonth" and should be part of AbsoluteMarker enum. :vartype absolute_criteria: list[str or ~azure.mgmt.dataprotection.models.AbsoluteMarker] :ivar days_of_month: This is day of the month from 1 to 28 other wise last of month. :vartype days_of_month: list[~azure.mgmt.dataprotection.models.Day] @@ -5767,8 +6224,7 @@ class ScheduleBasedBackupCriteria(BackupCriteria, discriminator="ScheduleBasedBa name="absoluteCriteria", visibility=["read", "create", "update", "delete", "query"] ) """it contains absolute values like \"AllBackup\" / \"FirstOfDay\" / \"FirstOfWeek\" / - \"FirstOfMonth\" - and should be part of AbsoluteMarker enum.""" + \"FirstOfMonth\" and should be part of AbsoluteMarker enum.""" days_of_month: Optional[list["_models.Day"]] = rest_field( name="daysOfMonth", visibility=["read", "create", "update", "delete", "query"] ) @@ -6404,8 +6860,7 @@ class TargetDetails(_Model): Below will be the common prefix for all of them. Required. :vartype file_prefix: str :ivar restore_target_location_type: Denotes the target location where the data will be - restored, - string value for the enum + restored, string value for the enum {Microsoft.Internal.AzureBackup.DataProtection.Common.Interface.RestoreTargetLocationType}. Required. Known values are: "Invalid", "AzureBlobs", and "AzureFiles". :vartype restore_target_location_type: str or @@ -6414,21 +6869,19 @@ class TargetDetails(_Model): Required. :vartype url: str :ivar target_resource_arm_id: Full ARM Id denoting the restore destination. It is the ARM Id - pointing to container / file share - This is optional if the target subscription can be identified with the URL field. If not - then this is needed if CrossSubscriptionRestore field of BackupVault is in any of the disabled - states. + pointing to container / file share This is optional if the target subscription can be + identified with the URL field. If not then this is needed if CrossSubscriptionRestore field of + BackupVault is in any of the disabled states. :vartype target_resource_arm_id: str """ file_prefix: str = rest_field(name="filePrefix", visibility=["read", "create", "update", "delete", "query"]) - """Restore operation may create multiple files inside location pointed by Url - Below will be the common prefix for all of them. Required.""" + """Restore operation may create multiple files inside location pointed by Url Below will be the + common prefix for all of them. Required.""" restore_target_location_type: Union[str, "_models.RestoreTargetLocationType"] = rest_field( name="restoreTargetLocationType", visibility=["read", "create", "update", "delete", "query"] ) - """Denotes the target location where the data will be restored, - string value for the enum + """Denotes the target location where the data will be restored, string value for the enum {Microsoft.Internal.AzureBackup.DataProtection.Common.Interface.RestoreTargetLocationType}. Required. Known values are: \"Invalid\", \"AzureBlobs\", and \"AzureFiles\".""" url: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) @@ -6437,8 +6890,7 @@ class TargetDetails(_Model): name="targetResourceArmId", visibility=["read", "create", "update", "delete", "query"] ) """Full ARM Id denoting the restore destination. It is the ARM Id pointing to container / file - share - This is optional if the target subscription can be identified with the URL field. If not + share This is optional if the target subscription can be identified with the URL field. If not then this is needed if CrossSubscriptionRestore field of BackupVault is in any of the disabled states.""" diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/operations/__init__.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/operations/__init__.py index f58feb19c84b..6f4c2c384b1f 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/operations/__init__.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/operations/__init__.py @@ -15,6 +15,7 @@ from ._operations import DataProtectionOperationsOperations # type: ignore from ._operations import BackupInstancesOperations # type: ignore from ._operations import BackupVaultOperationResultsOperations # type: ignore +from ._operations import DeletedBackupVaultsOperations # type: ignore from ._operations import ResourceGuardsOperations # type: ignore from ._operations import BackupVaultsOperations # type: ignore from ._operations import OperationStatusBackupVaultContextOperations # type: ignore @@ -43,6 +44,7 @@ "DataProtectionOperationsOperations", "BackupInstancesOperations", "BackupVaultOperationResultsOperations", + "DeletedBackupVaultsOperations", "ResourceGuardsOperations", "BackupVaultsOperations", "OperationStatusBackupVaultContextOperations", diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/operations/_operations.py b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/operations/_operations.py index ac052e101c6a..57ca4e830ebf 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/operations/_operations.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/azure/mgmt/dataprotection/operations/_operations.py @@ -36,6 +36,7 @@ from .._configuration import DataProtectionMgmtClientConfiguration from .._utils.model_base import SdkJSONEncoder, _deserialize, _failsafe_deserialize from .._utils.serialization import Deserializer, Serializer +from .._validation import api_version_validation T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, dict[str, Any]], Any]] @@ -50,7 +51,7 @@ def build_data_protection_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -76,7 +77,7 @@ def build_backup_instances_get_backup_instance_operation_result_request( # pyli _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -106,7 +107,7 @@ def build_backup_instances_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -135,7 +136,7 @@ def build_backup_instances_validate_for_backup_request( # pylint: disable=name- _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -165,7 +166,7 @@ def build_backup_instances_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -201,7 +202,7 @@ def build_backup_instances_create_or_update_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -242,7 +243,7 @@ def build_backup_instances_delete_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}" path_format_arguments = { @@ -273,7 +274,7 @@ def build_backup_instances_adhoc_backup_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -305,7 +306,7 @@ def build_backup_instances_validate_for_modify_backup_request( # pylint: disabl _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/validateForModifyBackup" path_format_arguments = { @@ -334,7 +335,7 @@ def build_backup_instances_trigger_rehydrate_request( # pylint: disable=name-to _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/rehydrate" path_format_arguments = { @@ -369,7 +370,7 @@ def build_backup_instances_trigger_restore_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -403,7 +404,7 @@ def build_backup_instances_resume_backups_request( # pylint: disable=name-too-l ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/resumeBackups" path_format_arguments = { @@ -426,7 +427,7 @@ def build_backup_instances_resume_protection_request( # pylint: disable=name-to ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/resumeProtection" path_format_arguments = { @@ -457,7 +458,7 @@ def build_backup_instances_stop_protection_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/stopProtection" path_format_arguments = { @@ -496,7 +497,7 @@ def build_backup_instances_suspend_backups_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/suspendBackups" path_format_arguments = { @@ -529,7 +530,7 @@ def build_backup_instances_sync_backup_instance_request( # pylint: disable=name _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/sync" path_format_arguments = { @@ -558,7 +559,7 @@ def build_backup_instances_validate_for_restore_request( # pylint: disable=name _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -590,7 +591,7 @@ def build_backup_instances_trigger_cross_region_restore_request( # pylint: disa _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -621,7 +622,7 @@ def build_backup_instances_validate_cross_region_restore_request( # pylint: dis _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -651,7 +652,7 @@ def build_backup_vault_operation_results_get_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -674,13 +675,68 @@ def build_backup_vault_operation_results_get_request( # pylint: disable=name-to return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) +def build_deleted_backup_vaults_get_request( + location: str, deleted_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-03-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.DataProtection/locations/{location}/deletedVaults/{deletedVaultName}" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "location": _SERIALIZER.url("location", location, "str"), + "deletedVaultName": _SERIALIZER.url("deleted_vault_name", deleted_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_deleted_backup_vaults_list_by_location_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-03-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/subscriptions/{subscriptionId}/providers/Microsoft.DataProtection/locations/{location}/deletedVaults" + 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_resource_guards_get_default_delete_resource_guard_proxy_requests_object_request( # pylint: disable=name-too-long resource_group_name: str, resource_guards_name: str, request_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -709,7 +765,7 @@ def build_resource_guards_get_delete_resource_guard_proxy_requests_objects_reque _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -737,7 +793,7 @@ def build_resource_guards_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -766,7 +822,7 @@ def build_resource_guards_put_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -797,7 +853,7 @@ def build_resource_guards_patch_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -826,7 +882,7 @@ def build_resource_guards_delete_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/resourceGuards/{resourceGuardsName}" path_format_arguments = { @@ -849,7 +905,7 @@ def build_resource_guards_get_resources_in_resource_group_request( # pylint: di _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -876,7 +932,7 @@ def build_resource_guards_get_resources_in_subscription_request( # pylint: disa _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -902,7 +958,7 @@ def build_resource_guards_get_default_disable_soft_delete_requests_object_reques _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -931,7 +987,7 @@ def build_resource_guards_get_disable_soft_delete_requests_objects_request( # p _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -959,7 +1015,7 @@ def build_resource_guards_get_default_update_protected_item_requests_object_requ _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -988,7 +1044,7 @@ def build_resource_guards_get_update_protected_item_requests_objects_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1016,7 +1072,7 @@ def build_resource_guards_get_default_update_protection_policy_requests_object_r _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1045,7 +1101,7 @@ def build_resource_guards_get_update_protection_policy_requests_objects_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1073,7 +1129,7 @@ def build_resource_guards_get_default_delete_protected_item_requests_object_requ _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1102,7 +1158,7 @@ def build_resource_guards_get_delete_protected_item_requests_objects_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1130,7 +1186,7 @@ def build_resource_guards_get_default_backup_security_pin_requests_object_reques _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1159,7 +1215,7 @@ def build_resource_guards_get_backup_security_pin_requests_objects_request( # p _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1187,7 +1243,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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1215,13 +1271,14 @@ def build_backup_vaults_create_or_update_request( # pylint: disable=name-too-lo subscription_id: str, *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, **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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1242,6 +1299,8 @@ def build_backup_vaults_create_or_update_request( # pylint: disable=name-too-lo _headers["x-ms-authorization-auxiliary"] = _SERIALIZER.header( "x_ms_authorization_auxiliary", x_ms_authorization_auxiliary, "str" ) + if x_ms_deleted_vault_id is not None: + _headers["x-ms-deleted-vault-id"] = _SERIALIZER.header("x_ms_deleted_vault_id", x_ms_deleted_vault_id, "str") if content_type is not None: _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") @@ -1261,7 +1320,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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1294,7 +1353,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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}" path_format_arguments = { @@ -1317,7 +1376,7 @@ def build_backup_vaults_get_in_subscription_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1343,7 +1402,7 @@ def build_backup_vaults_get_in_resource_group_request( # pylint: disable=name-t _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1371,7 +1430,7 @@ def build_backup_vaults_check_name_availability_request( # pylint: disable=name _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1401,7 +1460,7 @@ def build_operation_status_backup_vault_context_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1429,7 +1488,7 @@ def build_export_jobs_trigger_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/exportBackupJobs" path_format_arguments = { @@ -1452,7 +1511,7 @@ def build_export_jobs_operation_result_get_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1481,7 +1540,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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1511,7 +1570,7 @@ def build_backup_policies_create_or_update_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1541,7 +1600,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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{backupPolicyName}" path_format_arguments = { @@ -1565,7 +1624,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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1594,7 +1653,7 @@ def build_restorable_time_ranges_find_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1630,7 +1689,7 @@ def build_recovery_points_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1667,7 +1726,7 @@ def build_recovery_points_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1700,7 +1759,7 @@ def build_jobs_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1729,7 +1788,7 @@ def build_jobs_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1757,7 +1816,7 @@ def build_deleted_backup_instances_get_request( # pylint: disable=name-too-long _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1786,7 +1845,7 @@ def build_deleted_backup_instances_list_request( # pylint: disable=name-too-lon _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1813,7 +1872,7 @@ def build_deleted_backup_instances_undelete_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/deletedBackupInstances/{backupInstanceName}/undelete" path_format_arguments = { @@ -1837,7 +1896,7 @@ def build_dpp_resource_guard_proxy_get_request( # pylint: disable=name-too-long _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1867,7 +1926,7 @@ def build_dpp_resource_guard_proxy_create_or_update_request( # pylint: disable= _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1897,7 +1956,7 @@ def build_dpp_resource_guard_proxy_delete_request( # pylint: disable=name-too-l ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupResourceGuardProxies/{resourceGuardProxyName}" path_format_arguments = { @@ -1921,7 +1980,7 @@ def build_dpp_resource_guard_proxy_list_request( # pylint: disable=name-too-lon _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1956,7 +2015,7 @@ def build_dpp_resource_guard_proxy_unlock_delete_request( # pylint: disable=nam _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1991,7 +2050,7 @@ def build_operation_result_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2019,7 +2078,7 @@ def build_operation_status_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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2047,7 +2106,7 @@ def build_operation_status_resource_group_context_get_request( # pylint: disabl _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2076,7 +2135,7 @@ def build_data_protection_check_feature_support_request( # pylint: disable=name _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2112,7 +2171,7 @@ def build_fetch_secondary_recovery_points_list_request( # pylint: disable=name- _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2147,7 +2206,7 @@ def build_fetch_cross_region_restore_job_get_request( # pylint: disable=name-to _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2178,7 +2237,7 @@ def build_fetch_cross_region_restore_jobs_list_request( # pylint: disable=name- _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2210,7 +2269,7 @@ def build_backup_instances_extension_routing_list_request( # pylint: disable=na _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", "2025-07-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-03-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -2307,7 +2366,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.Operation], deserialized.get("value", [])) + 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) @@ -2323,7 +2385,10 @@ def get_next(next_link=None): 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) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -2396,6 +2461,7 @@ def get_backup_instance_operation_result( } _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 @@ -2410,13 +2476,16 @@ def get_backup_instance_operation_result( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BackupInstanceResource, response.json()) @@ -2495,7 +2564,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BackupInstanceResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BackupInstanceResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -2511,7 +2583,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -2561,6 +2636,7 @@ def _validate_for_backup_initial( } _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 @@ -2574,7 +2650,10 @@ def _validate_for_backup_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -2584,7 +2663,7 @@ def _validate_for_backup_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -2799,6 +2878,7 @@ def get( } _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 @@ -2813,11 +2893,14 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BackupInstanceResource, response.json()) @@ -2874,6 +2957,7 @@ def _create_or_update_initial( } _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 @@ -2887,7 +2971,10 @@ def _create_or_update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -2901,7 +2988,7 @@ def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -3131,6 +3218,7 @@ def _delete_initial( } _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 @@ -3144,7 +3232,10 @@ def _delete_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -3154,7 +3245,7 @@ def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -3277,6 +3368,7 @@ def _adhoc_backup_initial( } _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 @@ -3290,7 +3382,10 @@ def _adhoc_backup_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -3300,7 +3395,7 @@ def _adhoc_backup_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -3528,6 +3623,7 @@ def _validate_for_modify_backup_initial( } _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 @@ -3541,7 +3637,10 @@ def _validate_for_modify_backup_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.ErrorResponse, response) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -3550,7 +3649,7 @@ def _validate_for_modify_backup_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -3766,6 +3865,7 @@ def _trigger_rehydrate_initial( } _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 @@ -3779,7 +3879,10 @@ def _trigger_rehydrate_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -3789,7 +3892,7 @@ def _trigger_rehydrate_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -4008,6 +4111,7 @@ def _trigger_restore_initial( } _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 @@ -4021,7 +4125,10 @@ def _trigger_restore_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -4031,7 +4138,7 @@ def _trigger_restore_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -4259,6 +4366,7 @@ def _resume_backups_initial( } _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 @@ -4272,7 +4380,10 @@ def _resume_backups_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -4282,7 +4393,7 @@ def _resume_backups_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -4381,6 +4492,7 @@ def _resume_protection_initial( } _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 @@ -4394,7 +4506,10 @@ def _resume_protection_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -4404,7 +4519,7 @@ def _resume_protection_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -4525,6 +4640,7 @@ def _stop_protection_initial( } _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 @@ -4538,7 +4654,10 @@ def _stop_protection_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -4548,7 +4667,7 @@ def _stop_protection_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -4785,6 +4904,7 @@ def _suspend_backups_initial( } _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 @@ -4798,7 +4918,10 @@ def _suspend_backups_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -4808,7 +4931,7 @@ def _suspend_backups_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -5042,6 +5165,7 @@ def _sync_backup_instance_initial( } _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 @@ -5055,7 +5179,10 @@ def _sync_backup_instance_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -5065,7 +5192,7 @@ def _sync_backup_instance_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -5083,8 +5210,8 @@ def begin_sync_backup_instance( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Sync backup instance again in case of failure - This action will retry last failed operation and will bring backup instance to valid state. + """Sync backup instance again in case of failure This action will retry last failed operation and + will bring backup instance to valid state. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -5114,8 +5241,8 @@ def begin_sync_backup_instance( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Sync backup instance again in case of failure - This action will retry last failed operation and will bring backup instance to valid state. + """Sync backup instance again in case of failure This action will retry last failed operation and + will bring backup instance to valid state. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -5145,8 +5272,8 @@ def begin_sync_backup_instance( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Sync backup instance again in case of failure - This action will retry last failed operation and will bring backup instance to valid state. + """Sync backup instance again in case of failure This action will retry last failed operation and + will bring backup instance to valid state. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -5174,8 +5301,8 @@ def begin_sync_backup_instance( parameters: Union[_models.SyncBackupInstanceRequest, JSON, IO[bytes]], **kwargs: Any ) -> LROPoller[None]: - """Sync backup instance again in case of failure - This action will retry last failed operation and will bring backup instance to valid state. + """Sync backup instance again in case of failure This action will retry last failed operation and + will bring backup instance to valid state. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -5285,6 +5412,7 @@ def _validate_for_restore_initial( } _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 @@ -5298,7 +5426,10 @@ def _validate_for_restore_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -5308,7 +5439,7 @@ def _validate_for_restore_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -5535,6 +5666,7 @@ def _trigger_cross_region_restore_initial( } _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 @@ -5548,7 +5680,10 @@ def _trigger_cross_region_restore_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.ErrorResponse, response) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -5558,7 +5693,7 @@ def _trigger_cross_region_restore_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -5772,6 +5907,7 @@ def _validate_cross_region_restore_initial( } _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 @@ -5785,7 +5921,10 @@ def _validate_cross_region_restore_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.ErrorResponse, response) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -5795,7 +5934,7 @@ def _validate_cross_region_restore_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -6028,6 +6167,7 @@ def get( } _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 @@ -6042,14 +6182,17 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None response_headers = {} if response.status_code == 200: if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BackupVaultResource, response.json()) @@ -6066,6 +6209,198 @@ def get( return deserialized # type: ignore +class DeletedBackupVaultsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.dataprotection.DataProtectionMgmtClient`'s + :attr:`deleted_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: DataProtectionMgmtClientConfiguration = 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-09-01", + params_added_on={"2025-09-01": ["api_version", "subscription_id", "location", "deleted_vault_name", "accept"]}, + api_versions_list=["2025-09-01", "2026-03-01"], + ) + def get(self, location: str, deleted_vault_name: str, **kwargs: Any) -> _models.DeletedBackupVaultResource: + """Gets a deleted backup vault. + + :param location: The name of the Azure region. Required. + :type location: str + :param deleted_vault_name: The name of the DeletedBackupVaultResource. Required. + :type deleted_vault_name: str + :return: DeletedBackupVaultResource. The DeletedBackupVaultResource is compatible with + MutableMapping + :rtype: ~azure.mgmt.dataprotection.models.DeletedBackupVaultResource + :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.DeletedBackupVaultResource] = kwargs.pop("cls", None) + + _request = build_deleted_backup_vaults_get_request( + location=location, + deleted_vault_name=deleted_vault_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + _decompress = kwargs.pop("decompress", True) + _stream = kwargs.pop("stream", False) + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(_models.DeletedBackupVaultResource, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + @distributed_trace + @api_version_validation( + method_added_on="2025-09-01", + params_added_on={"2025-09-01": ["api_version", "subscription_id", "location", "accept"]}, + api_versions_list=["2025-09-01", "2026-03-01"], + ) + def list_by_location(self, location: str, **kwargs: Any) -> ItemPaged["_models.DeletedBackupVaultResource"]: + """Lists deleted backup vaults by location. + + :param location: The name of the Azure region. Required. + :type location: str + :return: An iterator like instance of DeletedBackupVaultResource + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.dataprotection.models.DeletedBackupVaultResource] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[List[_models.DeletedBackupVaultResource]] = 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_deleted_backup_vaults_list_by_location_request( + location=location, + 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), 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.DeletedBackupVaultResource], + 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 ResourceGuardsOperations: """ .. warning:: @@ -6128,6 +6463,7 @@ def get_default_delete_resource_guard_proxy_requests_object( # pylint: disable= } _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 @@ -6142,11 +6478,14 @@ def get_default_delete_resource_guard_proxy_requests_object( # pylint: disable= except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -6226,7 +6565,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -6242,7 +6584,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -6288,6 +6633,7 @@ def get(self, resource_group_name: str, resource_guards_name: str, **kwargs: Any } _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 @@ -6302,11 +6648,14 @@ def get(self, resource_group_name: str, resource_guards_name: str, **kwargs: Any except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardResource, response.json()) @@ -6454,6 +6803,7 @@ def put( } _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 @@ -6468,11 +6818,14 @@ def put( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardResource, response.json()) @@ -6625,6 +6978,7 @@ def patch( } _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 @@ -6639,11 +6993,14 @@ def patch( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardResource, response.json()) @@ -6702,7 +7059,10 @@ def delete( # pylint: disable=inconsistent-return-statements if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -6775,7 +7135,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ResourceGuardResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ResourceGuardResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -6791,7 +7154,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -6859,7 +7225,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ResourceGuardResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ResourceGuardResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -6875,7 +7244,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -6927,6 +7299,7 @@ def get_default_disable_soft_delete_requests_object( # pylint: disable=name-too } _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 @@ -6941,11 +7314,14 @@ def get_default_disable_soft_delete_requests_object( # pylint: disable=name-too except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -7025,7 +7401,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -7041,7 +7420,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -7093,6 +7475,7 @@ def get_default_update_protected_item_requests_object( # pylint: disable=name-t } _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 @@ -7107,11 +7490,14 @@ def get_default_update_protected_item_requests_object( # pylint: disable=name-t except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -7191,7 +7577,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -7207,7 +7596,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -7259,6 +7651,7 @@ def get_default_update_protection_policy_requests_object( # pylint: disable=nam } _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 @@ -7273,11 +7666,14 @@ def get_default_update_protection_policy_requests_object( # pylint: disable=nam except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -7357,7 +7753,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -7373,7 +7772,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -7425,6 +7827,7 @@ def get_default_delete_protected_item_requests_object( # pylint: disable=name-t } _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 @@ -7439,11 +7842,14 @@ def get_default_delete_protected_item_requests_object( # pylint: disable=name-t except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -7523,7 +7929,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -7539,7 +7948,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -7591,6 +8003,7 @@ def get_default_backup_security_pin_requests_object( # pylint: disable=name-too } _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 @@ -7605,11 +8018,14 @@ def get_default_backup_security_pin_requests_object( # pylint: disable=name-too except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DppBaseResource, response.json()) @@ -7689,7 +8105,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DppBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DppBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -7705,7 +8124,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -7769,6 +8191,7 @@ def get(self, resource_group_name: str, vault_name: str, **kwargs: Any) -> _mode } _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 @@ -7783,11 +8206,14 @@ def get(self, resource_group_name: str, vault_name: str, **kwargs: Any) -> _mode except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BackupVaultResource, response.json()) @@ -7796,6 +8222,10 @@ def get(self, resource_group_name: str, vault_name: str, **kwargs: Any) -> _mode return deserialized # type: ignore + @api_version_validation( + params_added_on={"2025-09-01": ["x_ms_deleted_vault_id"]}, + api_versions_list=["2025-07-01", "2025-09-01", "2026-03-01"], + ) def _create_or_update_initial( self, resource_group_name: str, @@ -7803,6 +8233,7 @@ def _create_or_update_initial( parameters: Union[_models.BackupVaultResource, JSON, IO[bytes]], *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -7831,6 +8262,7 @@ def _create_or_update_initial( vault_name=vault_name, subscription_id=self._config.subscription_id, x_ms_authorization_auxiliary=x_ms_authorization_auxiliary, + x_ms_deleted_vault_id=x_ms_deleted_vault_id, content_type=content_type, api_version=self._config.api_version, content=_content, @@ -7842,6 +8274,7 @@ def _create_or_update_initial( } _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 @@ -7855,7 +8288,10 @@ def _create_or_update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -7863,7 +8299,7 @@ def _create_or_update_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() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -7878,6 +8314,7 @@ def begin_create_or_update( parameters: _models.BackupVaultResource, *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.BackupVaultResource]: @@ -7892,6 +8329,9 @@ def begin_create_or_update( :type parameters: ~azure.mgmt.dataprotection.models.BackupVaultResource :keyword x_ms_authorization_auxiliary: Default value is None. :paramtype x_ms_authorization_auxiliary: str + :keyword x_ms_deleted_vault_id: The ID of the deleted backup vault to restore from during + undelete flow. Default value is None. + :paramtype x_ms_deleted_vault_id: str :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str @@ -7909,6 +8349,7 @@ def begin_create_or_update( parameters: JSON, *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.BackupVaultResource]: @@ -7923,6 +8364,9 @@ def begin_create_or_update( :type parameters: JSON :keyword x_ms_authorization_auxiliary: Default value is None. :paramtype x_ms_authorization_auxiliary: str + :keyword x_ms_deleted_vault_id: The ID of the deleted backup vault to restore from during + undelete flow. Default value is None. + :paramtype x_ms_deleted_vault_id: str :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str @@ -7940,6 +8384,7 @@ def begin_create_or_update( parameters: IO[bytes], *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.BackupVaultResource]: @@ -7954,6 +8399,9 @@ def begin_create_or_update( :type parameters: IO[bytes] :keyword x_ms_authorization_auxiliary: Default value is None. :paramtype x_ms_authorization_auxiliary: str + :keyword x_ms_deleted_vault_id: The ID of the deleted backup vault to restore from during + undelete flow. Default value is None. + :paramtype x_ms_deleted_vault_id: str :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str @@ -7964,6 +8412,10 @@ def begin_create_or_update( """ @distributed_trace + @api_version_validation( + params_added_on={"2025-09-01": ["x_ms_deleted_vault_id"]}, + api_versions_list=["2025-07-01", "2025-09-01", "2026-03-01"], + ) def begin_create_or_update( self, resource_group_name: str, @@ -7971,6 +8423,7 @@ def begin_create_or_update( parameters: Union[_models.BackupVaultResource, JSON, IO[bytes]], *, x_ms_authorization_auxiliary: Optional[str] = None, + x_ms_deleted_vault_id: Optional[str] = None, **kwargs: Any ) -> LROPoller[_models.BackupVaultResource]: """Creates or updates a BackupVault resource belonging to a resource group. @@ -7985,6 +8438,9 @@ def begin_create_or_update( :type parameters: ~azure.mgmt.dataprotection.models.BackupVaultResource or JSON or IO[bytes] :keyword x_ms_authorization_auxiliary: Default value is None. :paramtype x_ms_authorization_auxiliary: str + :keyword x_ms_deleted_vault_id: The ID of the deleted backup vault to restore from during + undelete flow. Default value is None. + :paramtype x_ms_deleted_vault_id: str :return: An instance of LROPoller that returns BackupVaultResource. The BackupVaultResource is compatible with MutableMapping :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.dataprotection.models.BackupVaultResource] @@ -8004,6 +8460,7 @@ def begin_create_or_update( vault_name=vault_name, parameters=parameters, x_ms_authorization_auxiliary=x_ms_authorization_auxiliary, + x_ms_deleted_vault_id=x_ms_deleted_vault_id, content_type=content_type, cls=lambda x, y, z: x, headers=_headers, @@ -8089,6 +8546,7 @@ def _update_initial( } _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 @@ -8102,7 +8560,10 @@ def _update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -8110,7 +8571,7 @@ def _update_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() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -8322,6 +8783,7 @@ def _delete_initial(self, resource_group_name: str, vault_name: str, **kwargs: A } _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 @@ -8335,7 +8797,10 @@ def _delete_initial(self, resource_group_name: str, vault_name: str, **kwargs: A except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -8343,7 +8808,7 @@ def _delete_initial(self, resource_group_name: str, vault_name: str, **kwargs: A 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() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -8468,7 +8933,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BackupVaultResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BackupVaultResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -8484,7 +8952,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -8558,7 +9029,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BackupVaultResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BackupVaultResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -8574,7 +9048,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -8733,6 +9210,7 @@ def check_name_availability( } _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 @@ -8747,11 +9225,14 @@ def check_name_availability( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.CheckNameAvailabilityResult, response.json()) @@ -8822,6 +9303,7 @@ def get( } _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 @@ -8836,11 +9318,14 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.OperationResource, response.json()) @@ -8894,6 +9379,7 @@ def _trigger_initial(self, resource_group_name: str, vault_name: str, **kwargs: } _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 @@ -8907,14 +9393,17 @@ def _trigger_initial(self, resource_group_name: str, vault_name: str, **kwargs: except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + 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")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -9042,6 +9531,7 @@ def get( } _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 @@ -9056,13 +9546,16 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None if response.status_code == 200: if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ExportJobsResult, response.json()) @@ -9134,6 +9627,7 @@ def get( } _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 @@ -9148,11 +9642,14 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BaseBackupPolicyResource, response.json()) @@ -9318,6 +9815,7 @@ def create_or_update( } _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 @@ -9332,11 +9830,14 @@ def create_or_update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.BaseBackupPolicyResource, response.json()) @@ -9398,7 +9899,10 @@ def delete( # pylint: disable=inconsistent-return-statements if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -9475,7 +9979,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BaseBackupPolicyResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BaseBackupPolicyResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -9491,7 +9998,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -9673,6 +10183,7 @@ def find( } _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 @@ -9687,11 +10198,14 @@ def find( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.AzureBackupFindRestorableTimeRangesResponseResource, response.json()) @@ -9771,6 +10285,7 @@ def get( } _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 @@ -9785,11 +10300,14 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.AzureBackupRecoveryPointResource, response.json()) @@ -9885,7 +10403,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.AzureBackupRecoveryPointResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.AzureBackupRecoveryPointResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -9901,7 +10422,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -9971,6 +10495,7 @@ def get( } _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 @@ -9985,11 +10510,14 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.AzureBackupJobResource, response.json()) @@ -10068,7 +10596,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.AzureBackupJobResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.AzureBackupJobResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -10084,7 +10615,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -10154,6 +10688,7 @@ def get( } _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 @@ -10168,11 +10703,14 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.DeletedBackupInstanceResource, response.json()) @@ -10252,7 +10790,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.DeletedBackupInstanceResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.DeletedBackupInstanceResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -10268,7 +10809,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -10305,6 +10849,7 @@ def _undelete_initial( } _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 @@ -10318,7 +10863,10 @@ def _undelete_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} @@ -10326,7 +10874,7 @@ def _undelete_initial( response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -10459,6 +11007,7 @@ def get( } _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 @@ -10473,11 +11022,14 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardProxyBaseResource, response.json()) @@ -10643,6 +11195,7 @@ def create_or_update( } _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 @@ -10657,11 +11210,14 @@ def create_or_update( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ResourceGuardProxyBaseResource, response.json()) @@ -10723,7 +11279,10 @@ def delete( # pylint: disable=inconsistent-return-statements if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: @@ -10800,7 +11359,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ResourceGuardProxyBaseResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ResourceGuardProxyBaseResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -10816,7 +11378,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -10989,6 +11554,7 @@ def unlock_delete( } _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 @@ -11003,11 +11569,14 @@ def unlock_delete( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.UnlockDeleteResponse, response.json()) @@ -11075,6 +11644,7 @@ def get(self, operation_id: str, location: str, **kwargs: Any) -> Optional[_mode } _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 @@ -11089,14 +11659,17 @@ def get(self, operation_id: str, location: str, **kwargs: Any) -> Optional[_mode except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = None response_headers = {} if response.status_code == 200: if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.OperationJobExtendedInfo, response.json()) @@ -11170,6 +11743,7 @@ def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.Operat } _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 @@ -11184,11 +11758,14 @@ def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.Operat except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.OperationResource, response.json()) @@ -11256,6 +11833,7 @@ def get(self, resource_group_name: str, operation_id: str, **kwargs: Any) -> _mo } _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 @@ -11270,11 +11848,14 @@ def get(self, resource_group_name: str, operation_id: str, **kwargs: Any) -> _mo except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.OperationResource, response.json()) @@ -11314,7 +11895,7 @@ def check_feature_support( Validates if a feature is supported. - :param location: The location name. Required. + :param location: The name of the Azure region. Required. :type location: str :param parameters: The request body. Required. :type parameters: ~azure.mgmt.dataprotection.models.FeatureValidationRequestBase @@ -11335,7 +11916,7 @@ def check_feature_support( Validates if a feature is supported. - :param location: The location name. Required. + :param location: The name of the Azure region. Required. :type location: str :param parameters: The request body. Required. :type parameters: JSON @@ -11356,7 +11937,7 @@ def check_feature_support( Validates if a feature is supported. - :param location: The location name. Required. + :param location: The name of the Azure region. Required. :type location: str :param parameters: The request body. Required. :type parameters: IO[bytes] @@ -11377,7 +11958,7 @@ def check_feature_support( Validates if a feature is supported. - :param location: The location name. Required. + :param location: The name of the Azure region. Required. :type location: str :param parameters: The request body. Is one of the following types: FeatureValidationRequestBase, JSON, IO[bytes] Required. @@ -11423,6 +12004,7 @@ def check_feature_support( } _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 @@ -11437,11 +12019,14 @@ def check_feature_support( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.FeatureValidationResponseBase, response.json()) @@ -11671,7 +12256,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.AzureBackupRecoveryPointResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.AzureBackupRecoveryPointResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -11687,7 +12275,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -11852,6 +12443,7 @@ def get( } _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 @@ -11866,11 +12458,14 @@ def get( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.AzureBackupJobResource, response.json()) @@ -12079,7 +12674,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.AzureBackupJobResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.AzureBackupJobResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -12095,7 +12693,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response @@ -12184,7 +12785,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.BackupInstanceResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.BackupInstanceResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -12200,7 +12804,10 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize(_models.CloudError, response) + error = _failsafe_deserialize( + _models.CloudError, + response, + ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/check_backup_vaults_name_availability.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/check_backup_vaults_name_availability.py index beedf6564c4d..687c98242bd3 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/check_backup_vaults_name_availability.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/check_backup_vaults_name_availability.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/CheckBackupVaultsNameAvailability.json +# x-ms-original-file: 2026-03-01/VaultCRUD/CheckBackupVaultsNameAvailability.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/checkfeature_support.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/checkfeature_support.py index 51391c400a53..ae87f3144373 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/checkfeature_support.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/checkfeature_support.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/CheckfeatureSupport.json +# x-ms-original-file: 2026-03-01/CheckfeatureSupport.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/create_or_update_backup_policy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/create_or_update_backup_policy.py index 6a33a7b545df..782466711089 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/create_or_update_backup_policy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/create_or_update_backup_policy.py @@ -93,6 +93,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/PolicyCRUD/CreateOrUpdateBackupPolicy.json +# x-ms-original-file: 2026-03-01/PolicyCRUD/CreateOrUpdateBackupPolicy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_instance.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_instance.py index 30582da1cb82..ed7b1e59e0ac 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_instance.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_instance.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/DeleteBackupInstance.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/DeleteBackupInstance.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_policy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_policy.py index 96af2e8a730a..d93a5368abe8 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_policy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_policy.py @@ -37,6 +37,6 @@ def main(): ) -# x-ms-original-file: 2025-07-01/PolicyCRUD/DeleteBackupPolicy.json +# x-ms-original-file: 2026-03-01/PolicyCRUD/DeleteBackupPolicy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_vault.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_vault.py index f047918a6ba9..dbd143c02cca 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_vault.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_backup_vault.py @@ -36,6 +36,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/VaultCRUD/DeleteBackupVault.json +# x-ms-original-file: 2026-03-01/VaultCRUD/DeleteBackupVault.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_resource_guard.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_resource_guard.py index 0e60235a00b3..1b6d3cd301fc 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_resource_guard.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_resource_guard.py @@ -36,6 +36,6 @@ def main(): ) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/DeleteResourceGuard.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/DeleteResourceGuard.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_resource_guard_proxy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_resource_guard_proxy.py index 9a63b37690ab..bcccf96c898c 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_resource_guard_proxy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/delete_resource_guard_proxy.py @@ -37,6 +37,6 @@ def main(): ) -# x-ms-original-file: 2025-07-01/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json +# x-ms-original-file: 2026-03-01/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/deleted_backup_vaults_get.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/deleted_backup_vaults_get.py new file mode 100644 index 000000000000..68de06f6ef0b --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/deleted_backup_vaults_get.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.dataprotection import DataProtectionMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-dataprotection +# USAGE + python deleted_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 = DataProtectionMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.deleted_backup_vaults.get( + location="westus", + deleted_vault_name="deleted-vault-01", + ) + print(response) + + +# x-ms-original-file: 2026-03-01/DeletedBackupVaults_Get.json +if __name__ == "__main__": + main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/deleted_backup_vaults_list_by_location.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/deleted_backup_vaults_list_by_location.py new file mode 100644 index 000000000000..445ffe179ec4 --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/deleted_backup_vaults_list_by_location.py @@ -0,0 +1,42 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.dataprotection import DataProtectionMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-dataprotection +# USAGE + python deleted_backup_vaults_list_by_location.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 = DataProtectionMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.deleted_backup_vaults.list_by_location( + location="westus", + ) + for item in response: + print(item) + + +# x-ms-original-file: 2026-03-01/DeletedBackupVaults_ListByLocation.json +if __name__ == "__main__": + main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_cross_region_restore_job.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_cross_region_restore_job.py index f53d202073aa..94ec00b81481 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_cross_region_restore_job.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_cross_region_restore_job.py @@ -43,6 +43,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/CrossRegionRestore/FetchCrossRegionRestoreJob.json +# x-ms-original-file: 2026-03-01/CrossRegionRestore/FetchCrossRegionRestoreJob.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_cross_region_restore_jobs.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_cross_region_restore_jobs.py index b0366ec96627..ec61d1ff9f00 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_cross_region_restore_jobs.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_cross_region_restore_jobs.py @@ -43,6 +43,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/CrossRegionRestore/FetchCrossRegionRestoreJobs.json +# x-ms-original-file: 2026-03-01/CrossRegionRestore/FetchCrossRegionRestoreJobs.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_secondary_rps.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_secondary_rps.py index 17b41a44e475..e586a5281712 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_secondary_rps.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/fetch_secondary_rps.py @@ -43,6 +43,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/CrossRegionRestore/FetchSecondaryRPs.json +# x-ms-original-file: 2026-03-01/CrossRegionRestore/FetchSecondaryRPs.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/find_restorable_time_ranges.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/find_restorable_time_ranges.py index 178c9155ad4f..ef94e987c5f6 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/find_restorable_time_ranges.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/find_restorable_time_ranges.py @@ -43,6 +43,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/FindRestorableTimeRanges.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/FindRestorableTimeRanges.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance.py index aee8652a4da7..b0ea2f49ff67 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/GetBackupInstance.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/GetBackupInstance.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_adlsblob_backup_auto_protection.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_adlsblob_backup_auto_protection.py new file mode 100644 index 000000000000..062bd0928d87 --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_adlsblob_backup_auto_protection.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.dataprotection import DataProtectionMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-dataprotection +# USAGE + python get_backup_instance_adlsblob_backup_auto_protection.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 = DataProtectionMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.backup_instances.get( + resource_group_name="adlsrg", + vault_name="adlsvault", + backup_instance_name="adlsbackupinstance", + ) + print(response) + + +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/GetBackupInstance_ADLSBlobBackupAutoProtection.json +if __name__ == "__main__": + main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_adlsblob_backup_datasource_parameters.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_adlsblob_backup_datasource_parameters.py index e3968e1f1034..d1ce869f12b9 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_adlsblob_backup_datasource_parameters.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_adlsblob_backup_datasource_parameters.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/GetBackupInstance_ADLSBlobBackupDatasourceParameters.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/GetBackupInstance_ADLSBlobBackupDatasourceParameters.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_blob_backup_auto_protection.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_blob_backup_auto_protection.py new file mode 100644 index 000000000000..4db4c78d3632 --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_blob_backup_auto_protection.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.dataprotection import DataProtectionMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-dataprotection +# USAGE + python get_backup_instance_blob_backup_auto_protection.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 = DataProtectionMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.backup_instances.get( + resource_group_name="blobrg", + vault_name="blobvault", + backup_instance_name="blobbackupinstance", + ) + print(response) + + +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/GetBackupInstance_BlobBackupAutoProtection.json +if __name__ == "__main__": + main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_operation_result.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_operation_result.py index 0550210eabd1..be347b1dcb76 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_operation_result.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_instance_operation_result.py @@ -40,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/GetBackupInstanceOperationResult.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/GetBackupInstanceOperationResult.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_policy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_policy.py index 9a2ade40739a..7103e5b51a0c 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_policy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_policy.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/PolicyCRUD/GetBackupPolicy.json +# x-ms-original-file: 2026-03-01/PolicyCRUD/GetBackupPolicy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault.py index 5019b5b7d0dc..2bc638759716 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/GetBackupVault.json +# x-ms-original-file: 2026-03-01/VaultCRUD/GetBackupVault.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault_with_cmk.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault_with_cmk.py index 7abafa42f587..3b330213e5a4 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault_with_cmk.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault_with_cmk.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/GetBackupVaultWithCMK.json +# x-ms-original-file: 2026-03-01/VaultCRUD/GetBackupVaultWithCMK.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault_with_msi.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault_with_msi.py index 2d2250a3f536..1e7ff6b0b27b 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault_with_msi.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vault_with_msi.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/GetBackupVaultWithMSI.json +# x-ms-original-file: 2026-03-01/VaultCRUD/GetBackupVaultWithMSI.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vaults_in_resource_group.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vaults_in_resource_group.py index 4593761c59a1..8e5af10dddff 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vaults_in_resource_group.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vaults_in_resource_group.py @@ -37,6 +37,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/VaultCRUD/GetBackupVaultsInResourceGroup.json +# x-ms-original-file: 2026-03-01/VaultCRUD/GetBackupVaultsInResourceGroup.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vaults_in_subscription.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vaults_in_subscription.py index ad070ecadcea..01b65a7a8e86 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vaults_in_subscription.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_backup_vaults_in_subscription.py @@ -35,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/VaultCRUD/GetBackupVaultsInSubscription.json +# x-ms-original-file: 2026-03-01/VaultCRUD/GetBackupVaultsInSubscription.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_backup_security_pin_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_backup_security_pin_requests.py index 85c949c83ce9..84a5a2c763bc 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_backup_security_pin_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_backup_security_pin_requests.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetDefaultBackupSecurityPINRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetDefaultBackupSecurityPINRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_delete_protected_item_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_delete_protected_item_requests.py index bad7bc82466f..3b14bfe48d11 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_delete_protected_item_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_delete_protected_item_requests.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetDefaultDeleteProtectedItemRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetDefaultDeleteProtectedItemRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_delete_resource_guard_proxy_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_delete_resource_guard_proxy_requests.py index c79d37a3bec4..a1f89df7fc79 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_delete_resource_guard_proxy_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_delete_resource_guard_proxy_requests.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetDefaultDeleteResourceGuardProxyRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetDefaultDeleteResourceGuardProxyRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_disable_soft_delete_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_disable_soft_delete_requests.py index 689a4d389413..19bf963895f3 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_disable_soft_delete_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_disable_soft_delete_requests.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetDefaultDisableSoftDeleteRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetDefaultDisableSoftDeleteRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_update_protected_item_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_update_protected_item_requests.py index 4eb7d90eebee..766cf7e1ed75 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_update_protected_item_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_update_protected_item_requests.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetDefaultUpdateProtectedItemRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetDefaultUpdateProtectedItemRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_update_protection_policy_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_update_protection_policy_requests.py index 23a18d915439..142aed864e4a 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_update_protection_policy_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_default_update_protection_policy_requests.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetDefaultUpdateProtectionPolicyRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetDefaultUpdateProtectionPolicyRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_deleted_backup_instance.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_deleted_backup_instance.py index ac1baa73b467..518d74b2613e 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_deleted_backup_instance.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_deleted_backup_instance.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/DeletedBackupInstanceOperations/GetDeletedBackupInstance.json +# x-ms-original-file: 2026-03-01/DeletedBackupInstanceOperations/GetDeletedBackupInstance.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_export_jobs_operation_result.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_export_jobs_operation_result.py index 44e8bdf879e1..f5253a9da3b8 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_export_jobs_operation_result.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_export_jobs_operation_result.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/JobCRUD/GetExportJobsOperationResult.json +# x-ms-original-file: 2026-03-01/JobCRUD/GetExportJobsOperationResult.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_job.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_job.py index 5f22178dc73f..6af6f9154d25 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_job.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_job.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/JobCRUD/GetJob.json +# x-ms-original-file: 2026-03-01/JobCRUD/GetJob.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_result.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_result.py index ad648269b8fa..bef6de2f0cea 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_result.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_result.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/GetOperationResult.json +# x-ms-original-file: 2026-03-01/GetOperationResult.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_result_patch.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_result_patch.py index d20ea7c5a4b3..c09710bb3998 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_result_patch.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_result_patch.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/GetOperationResultPatch.json +# x-ms-original-file: 2026-03-01/VaultCRUD/GetOperationResultPatch.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status.py index d7e4535d66ad..5e9b969ce9ec 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/GetOperationStatus.json +# x-ms-original-file: 2026-03-01/GetOperationStatus.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status_rg_context.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status_rg_context.py index 10c62d55d61f..9aaa790e9bef 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status_rg_context.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status_rg_context.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/GetOperationStatusRGContext.json +# x-ms-original-file: 2026-03-01/GetOperationStatusRGContext.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status_vault_context.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status_vault_context.py index d0975ec1018a..e62fd5f76fac 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status_vault_context.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_operation_status_vault_context.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/GetOperationStatusVaultContext.json +# x-ms-original-file: 2026-03-01/GetOperationStatusVaultContext.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_recovery_point.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_recovery_point.py index 0904ccaa2f17..497758d2a793 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_recovery_point.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_recovery_point.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/GetRecoveryPoint.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/GetRecoveryPoint.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guard.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guard.py index e15b79dcf0ee..dbb8d552f6de 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guard.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guard.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetResourceGuard.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetResourceGuard.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guard_proxy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guard_proxy.py index 73024de2edfb..ff54c7144988 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guard_proxy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guard_proxy.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardProxyCRUD/GetResourceGuardProxy.json +# x-ms-original-file: 2026-03-01/ResourceGuardProxyCRUD/GetResourceGuardProxy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guards_in_resource_group.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guards_in_resource_group.py index 2198539a627c..063c344563f2 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guards_in_resource_group.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guards_in_resource_group.py @@ -37,6 +37,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetResourceGuardsInResourceGroup.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetResourceGuardsInResourceGroup.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guards_in_subscription.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guards_in_subscription.py index 212fa661dfc9..4be6c1fa3218 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guards_in_subscription.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/get_resource_guards_in_subscription.py @@ -35,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/GetResourceGuardsInSubscription.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/GetResourceGuardsInSubscription.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list.py index e1f54868f439..0b798ec7ca07 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list.py @@ -35,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/Operations/List.json +# x-ms-original-file: 2026-03-01/Operations/List.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_instances.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_instances.py index 8d442493e071..90ef4c9086b7 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_instances.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_instances.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/ListBackupInstances.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/ListBackupInstances.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_instances_extension_routing.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_instances_extension_routing.py index 186880d8b5df..178ecced0869 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_instances_extension_routing.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_instances_extension_routing.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/ListBackupInstancesExtensionRouting.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/ListBackupInstancesExtensionRouting.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_policy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_policy.py index d880adb7926a..a8031393ac0c 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_policy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_policy.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/PolicyCRUD/ListBackupPolicy.json +# x-ms-original-file: 2026-03-01/PolicyCRUD/ListBackupPolicy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_security_pin_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_security_pin_requests.py index 7161fb7977d1..377643f31f75 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_security_pin_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_backup_security_pin_requests.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/ListBackupSecurityPINRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/ListBackupSecurityPINRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_delete_protected_item_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_delete_protected_item_requests.py index c10da483b72e..18a18ca78ae1 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_delete_protected_item_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_delete_protected_item_requests.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/ListDeleteProtectedItemRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/ListDeleteProtectedItemRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_delete_resource_guard_proxy_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_delete_resource_guard_proxy_requests.py index 8913773a4333..851b6992666e 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_delete_resource_guard_proxy_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_delete_resource_guard_proxy_requests.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/ListDeleteResourceGuardProxyRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/ListDeleteResourceGuardProxyRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_deleted_backup_instances.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_deleted_backup_instances.py index b8fbcd82921a..8ef7b254754e 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_deleted_backup_instances.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_deleted_backup_instances.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/DeletedBackupInstanceOperations/ListDeletedBackupInstances.json +# x-ms-original-file: 2026-03-01/DeletedBackupInstanceOperations/ListDeletedBackupInstances.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_disable_soft_delete_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_disable_soft_delete_requests.py index 5fde08148a56..48a562d750cb 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_disable_soft_delete_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_disable_soft_delete_requests.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/ListDisableSoftDeleteRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/ListDisableSoftDeleteRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_jobs.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_jobs.py index 82aaed166699..129b2a2ff029 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_jobs.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_jobs.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/JobCRUD/ListJobs.json +# x-ms-original-file: 2026-03-01/JobCRUD/ListJobs.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_recovery_points.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_recovery_points.py index 4aa787f554f4..146d670bfbd1 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_recovery_points.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_recovery_points.py @@ -39,6 +39,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/ListRecoveryPoints.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/ListRecoveryPoints.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_resource_guard_proxy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_resource_guard_proxy.py index 39cb69e57ce2..78cde87f06dc 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_resource_guard_proxy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_resource_guard_proxy.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardProxyCRUD/ListResourceGuardProxy.json +# x-ms-original-file: 2026-03-01/ResourceGuardProxyCRUD/ListResourceGuardProxy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_update_protected_item_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_update_protected_item_requests.py index 5d195e1cd9e1..825f5c7b3625 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_update_protected_item_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_update_protected_item_requests.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/ListUpdateProtectedItemRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/ListUpdateProtectedItemRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_update_protection_policy_requests.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_update_protection_policy_requests.py index e3e7a6185284..24f3741935b2 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_update_protection_policy_requests.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/list_update_protection_policy_requests.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/ListUpdateProtectionPolicyRequests.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/ListUpdateProtectionPolicyRequests.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_backup_vault.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_backup_vault.py index 5c06296fe6bc..64f171307450 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_backup_vault.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_backup_vault.py @@ -41,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/PatchBackupVault.json +# x-ms-original-file: 2026-03-01/VaultCRUD/PatchBackupVault.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_backup_vault_with_cmk.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_backup_vault_with_cmk.py index 8507958f4291..7858c93c03b3 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_backup_vault_with_cmk.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_backup_vault_with_cmk.py @@ -55,6 +55,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/PatchBackupVaultWithCMK.json +# x-ms-original-file: 2026-03-01/VaultCRUD/PatchBackupVaultWithCMK.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_resource_guard.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_resource_guard.py index 945cf6ee54b4..5779c8dafa59 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_resource_guard.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/patch_resource_guard.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/PatchResourceGuard.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/PatchResourceGuard.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance.py index dcf408ca00ca..819252e9c1a9 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance.py @@ -87,6 +87,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/PutBackupInstance.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/PutBackupInstance.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_adlsblob_backup_auto_protection.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_adlsblob_backup_auto_protection.py new file mode 100644 index 000000000000..e259ff4690ee --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_adlsblob_backup_auto_protection.py @@ -0,0 +1,96 @@ +# 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.dataprotection import DataProtectionMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-dataprotection +# USAGE + python put_backup_instance_adlsblob_backup_auto_protection.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 = DataProtectionMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.backup_instances.begin_create_or_update( + resource_group_name="adlsrg", + vault_name="adlsvault", + backup_instance_name="adlsstorageaccount-adlsstorageaccount-3a76f8a-c176-4f7d-819e-95157e2b0071", + parameters={ + "properties": { + "dataSourceInfo": { + "datasourceType": "Microsoft.Storage/storageAccounts/adlsBlobServices", + "objectType": "Datasource", + "resourceID": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/adlsrg/providers/Microsoft.Storage/storageAccounts/adlsstorageaccount", + "resourceLocation": "centraluseuap", + "resourceName": "adlsstorageaccount", + "resourceType": "microsoft.storage/storageAccounts", + "resourceUri": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/adlsrg/providers/Microsoft.Storage/storageAccounts/adlsstorageaccount", + }, + "dataSourceSetInfo": { + "datasourceType": "Microsoft.Storage/storageAccounts/adlsBlobServices", + "objectType": "DatasourceSet", + "resourceID": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/adlsrg/providers/Microsoft.Storage/storageAccounts/adlsstorageaccount", + "resourceLocation": "centraluseuap", + "resourceName": "adlsstorageaccount", + "resourceType": "microsoft.storage/storageAccounts", + "resourceUri": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/adlsrg/providers/Microsoft.Storage/storageAccounts/adlsstorageaccount", + }, + "friendlyName": "adlsstorageaccount\\adlsbackupinstance", + "objectType": "BackupInstance", + "policyInfo": { + "policyId": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/adlsrg/providers/Microsoft.DataProtection/backupVaults/adlsvault/backupPolicies/adlspolicy", + "policyParameters": { + "backupDatasourceParametersList": [ + { + "autoProtectionSettings": { + "enabled": True, + "objectType": "BlobBackupRuleBasedAutoProtectionSettings", + "rules": [ + { + "mode": "Exclude", + "objectType": "BlobBackupAutoProtectionRule", + "pattern": "temp-", + "type": "Prefix", + }, + { + "mode": "Exclude", + "objectType": "BlobBackupAutoProtectionRule", + "pattern": "test-", + "type": "Prefix", + }, + ], + }, + "objectType": "AdlsBlobBackupDatasourceParametersForAutoProtection", + } + ] + }, + }, + } + }, + ).result() + print(response) + + +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/PutBackupInstance_ADLSBlobBackupAutoProtection.json +if __name__ == "__main__": + main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_adlsblob_backup_datasource_parameters.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_adlsblob_backup_datasource_parameters.py index 3c01e905eeb5..46c46a0965e3 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_adlsblob_backup_datasource_parameters.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_adlsblob_backup_datasource_parameters.py @@ -71,6 +71,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/PutBackupInstance_ADLSBlobBackupDatasourceParameters.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/PutBackupInstance_ADLSBlobBackupDatasourceParameters.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_blob_backup_auto_protection.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_blob_backup_auto_protection.py new file mode 100644 index 000000000000..9046f9d4b13b --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_blob_backup_auto_protection.py @@ -0,0 +1,96 @@ +# 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.dataprotection import DataProtectionMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-dataprotection +# USAGE + python put_backup_instance_blob_backup_auto_protection.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 = DataProtectionMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.backup_instances.begin_create_or_update( + resource_group_name="blobrg", + vault_name="blobvault", + backup_instance_name="blobstorageaccount-blobstorageaccount-2a76f8a-c176-4f7d-819e-95157e2b0071", + parameters={ + "properties": { + "dataSourceInfo": { + "datasourceType": "Microsoft.Storage/storageAccounts/blobServices", + "objectType": "Datasource", + "resourceID": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/blobrg/providers/Microsoft.Storage/storageAccounts/blobstorageaccount", + "resourceLocation": "centraluseuap", + "resourceName": "blobstorageaccount", + "resourceType": "microsoft.storage/storageAccounts", + "resourceUri": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/blobrg/providers/Microsoft.Storage/storageAccounts/blobstorageaccount", + }, + "dataSourceSetInfo": { + "datasourceType": "Microsoft.Storage/storageAccounts/blobServices", + "objectType": "DatasourceSet", + "resourceID": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/blobrg/providers/Microsoft.Storage/storageAccounts/blobstorageaccount", + "resourceLocation": "centraluseuap", + "resourceName": "blobstorageaccount", + "resourceType": "microsoft.storage/storageAccounts", + "resourceUri": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/blobrg/providers/Microsoft.Storage/storageAccounts/blobstorageaccount", + }, + "friendlyName": "blobstorageaccount\\blobbackupinstance", + "objectType": "BackupInstance", + "policyInfo": { + "policyId": "/subscriptions/54707983-993e-43de-8d94-074451394eda/resourceGroups/blobrg/providers/Microsoft.DataProtection/backupVaults/blobvault/backupPolicies/blobpolicy", + "policyParameters": { + "backupDatasourceParametersList": [ + { + "autoProtectionSettings": { + "enabled": True, + "objectType": "BlobBackupRuleBasedAutoProtectionSettings", + "rules": [ + { + "mode": "Exclude", + "objectType": "BlobBackupAutoProtectionRule", + "pattern": "temp-", + "type": "Prefix", + }, + { + "mode": "Exclude", + "objectType": "BlobBackupAutoProtectionRule", + "pattern": "test-", + "type": "Prefix", + }, + ], + }, + "objectType": "BlobBackupDatasourceParametersForAutoProtection", + } + ] + }, + }, + } + }, + ).result() + print(response) + + +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/PutBackupInstance_BlobBackupAutoProtection.json +if __name__ == "__main__": + main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_kubernetes_cluster_backup_datasource_parameters.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_kubernetes_cluster_backup_datasource_parameters.py index e149874a34db..485432d75ac7 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_kubernetes_cluster_backup_datasource_parameters.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_kubernetes_cluster_backup_datasource_parameters.py @@ -88,6 +88,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/PutBackupInstance_KubernetesClusterBackupDatasourceParameters.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/PutBackupInstance_KubernetesClusterBackupDatasourceParameters.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_resource_guard_enabled.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_resource_guard_enabled.py index 3b3af9670347..761b78f43562 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_resource_guard_enabled.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_instance_resource_guard_enabled.py @@ -86,6 +86,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/PutBackupInstance_ResourceGuardEnabled.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/PutBackupInstance_ResourceGuardEnabled.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault.py index e0465d19fedc..4e9d56385017 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault.py @@ -47,6 +47,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/PutBackupVault.json +# x-ms-original-file: 2026-03-01/VaultCRUD/PutBackupVault.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_cmk.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_cmk.py index c4cecd15eb72..5b8a84cfd69e 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_cmk.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_cmk.py @@ -61,6 +61,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/PutBackupVaultWithCMK.json +# x-ms-original-file: 2026-03-01/VaultCRUD/PutBackupVaultWithCMK.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_msi.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_msi.py index b6d90415fbd2..3b4680d0ed5a 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_msi.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_msi.py @@ -47,6 +47,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/VaultCRUD/PutBackupVaultWithMSI.json +# x-ms-original-file: 2026-03-01/VaultCRUD/PutBackupVaultWithMSI.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_undelete.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_undelete.py new file mode 100644 index 000000000000..0f3af6fc5767 --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_backup_vault_with_undelete.py @@ -0,0 +1,58 @@ +# 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.dataprotection import DataProtectionMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-dataprotection +# USAGE + python put_backup_vault_with_undelete.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 = DataProtectionMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.backup_vaults.begin_create_or_update( + resource_group_name="SampleResourceGroup", + vault_name="swaggerExample", + parameters={ + "location": "WestUS", + "properties": { + "featureSettings": { + "crossRegionRestoreSettings": {"state": "Enabled"}, + "crossSubscriptionRestoreSettings": {"state": "Disabled"}, + }, + "monitoringSettings": {"azureMonitorAlertSettings": {"alertsForAllJobFailures": "Enabled"}}, + "securitySettings": { + "immutabilitySettings": {"state": "Disabled"}, + "softDeleteSettings": {"retentionDurationInDays": 14, "state": "Enabled"}, + }, + "storageSettings": [{"datastoreType": "VaultStore", "type": "LocallyRedundant"}], + }, + "tags": {"key1": "val1"}, + }, + ).result() + print(response) + + +# x-ms-original-file: 2026-03-01/PutBackupVaultWithUndelete.json +if __name__ == "__main__": + main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_resource_guard.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_resource_guard.py index f1adeceb1e51..d462df04b7aa 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_resource_guard.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_resource_guard.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardCRUD/PutResourceGuard.json +# x-ms-original-file: 2026-03-01/ResourceGuardCRUD/PutResourceGuard.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_resource_guard_proxy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_resource_guard_proxy.py index 544198ad76b1..a37129b52107 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_resource_guard_proxy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/put_resource_guard_proxy.py @@ -44,6 +44,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardProxyCRUD/PutResourceGuardProxy.json +# x-ms-original-file: 2026-03-01/ResourceGuardProxyCRUD/PutResourceGuardProxy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/resume_backups.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/resume_backups.py index ac20bc4f5fe3..24d8d1a3d754 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/resume_backups.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/resume_backups.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/ResumeBackups.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/ResumeBackups.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/resume_protection.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/resume_protection.py index d6a934f7a817..060cd1580431 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/resume_protection.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/resume_protection.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/ResumeProtection.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/ResumeProtection.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/stop_protection.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/stop_protection.py index e76ec274878f..c64935509884 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/stop_protection.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/stop_protection.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/StopProtection.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/StopProtection.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/stop_protection_resource_guard_enabled.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/stop_protection_resource_guard_enabled.py index d16472e7646d..d1dc86368614 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/stop_protection_resource_guard_enabled.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/stop_protection_resource_guard_enabled.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/StopProtection_ResourceGuardEnabled.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/StopProtection_ResourceGuardEnabled.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/suspend_backup_resource_guard_enabled.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/suspend_backup_resource_guard_enabled.py index 30d62622e38c..3bf2e1b09ebe 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/suspend_backup_resource_guard_enabled.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/suspend_backup_resource_guard_enabled.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/SuspendBackup_ResourceGuardEnabled.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/SuspendBackup_ResourceGuardEnabled.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/suspend_backups.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/suspend_backups.py index 43f2defebd13..9707fb1d170b 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/suspend_backups.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/suspend_backups.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/SuspendBackups.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/SuspendBackups.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/sync_backup_instance.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/sync_backup_instance.py index 499813920d9c..6c1ede4362f7 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/sync_backup_instance.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/sync_backup_instance.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/SyncBackupInstance.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/SyncBackupInstance.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_backup.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_backup.py index 093d1ea1f3f2..4ef6c7cc55f1 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_backup.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_backup.py @@ -41,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/TriggerBackup.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/TriggerBackup.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_cross_region_restore.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_cross_region_restore.py index cc962e0a1b26..30d0dc184b4f 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_cross_region_restore.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_cross_region_restore.py @@ -80,6 +80,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/CrossRegionRestore/TriggerCrossRegionRestore.json +# x-ms-original-file: 2026-03-01/CrossRegionRestore/TriggerCrossRegionRestore.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_export_jobs.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_export_jobs.py index 25d8c0f2086a..22ab47f07914 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_export_jobs.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_export_jobs.py @@ -36,6 +36,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/JobCRUD/TriggerExportJobs.json +# x-ms-original-file: 2026-03-01/JobCRUD/TriggerExportJobs.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_rehydrate.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_rehydrate.py index f60df56bd81a..eabc5ee7c30d 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_rehydrate.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_rehydrate.py @@ -42,6 +42,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/TriggerRehydrate.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/TriggerRehydrate.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore.py index 700149f67f7c..b5d52bd75c74 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore.py @@ -79,6 +79,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/TriggerRestore.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/TriggerRestore.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore_as_files.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore_as_files.py index d4d254f097b3..96404da1a9a5 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore_as_files.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore_as_files.py @@ -55,6 +55,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/TriggerRestoreAsFiles.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/TriggerRestoreAsFiles.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore_with_rehydration.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore_with_rehydration.py index 41b7be045e54..9aa5f133abcf 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore_with_rehydration.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/trigger_restore_with_rehydration.py @@ -70,6 +70,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/TriggerRestoreWithRehydration.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/TriggerRestoreWithRehydration.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/undelete_deleted_backup_instance.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/undelete_deleted_backup_instance.py index 64bf54128848..7930e865ada2 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/undelete_deleted_backup_instance.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/undelete_deleted_backup_instance.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/DeletedBackupInstanceOperations/UndeleteDeletedBackupInstance.json +# x-ms-original-file: 2026-03-01/DeletedBackupInstanceOperations/UndeleteDeletedBackupInstance.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/unlock_delete_resource_guard_proxy.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/unlock_delete_resource_guard_proxy.py index 84d138a02bd5..b011a573fef8 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/unlock_delete_resource_guard_proxy.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/unlock_delete_resource_guard_proxy.py @@ -45,6 +45,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json +# x-ms-original-file: 2026-03-01/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_cross_region_restore.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_cross_region_restore.py index 0016651c3c69..f8bf4ba3efb9 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_cross_region_restore.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_cross_region_restore.py @@ -80,6 +80,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/CrossRegionRestore/ValidateCrossRegionRestore.json +# x-ms-original-file: 2026-03-01/CrossRegionRestore/ValidateCrossRegionRestore.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_for_backup.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_for_backup.py index 8a27c4ff445d..54cdd432e8a5 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_for_backup.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_for_backup.py @@ -76,6 +76,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/ValidateForBackup.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/ValidateForBackup.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_for_modify_backup.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_for_modify_backup.py index d54a0d9f9085..fcac06872a29 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_for_modify_backup.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_for_modify_backup.py @@ -76,6 +76,6 @@ def main(): ).result() -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/ValidateForModifyBackup.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/ValidateForModifyBackup.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_restore.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_restore.py index 912428ce0977..6edf55ff2da8 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_restore.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_samples/validate_restore.py @@ -81,6 +81,6 @@ def main(): print(response) -# x-ms-original-file: 2025-07-01/BackupInstanceOperations/ValidateRestore.json +# x-ms-original-file: 2026-03-01/BackupInstanceOperations/ValidateRestore.json if __name__ == "__main__": main() diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_backup_vaults_operations.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_backup_vaults_operations.py index 4b07dc8e973d..c94f3908b091 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_backup_vaults_operations.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_backup_vaults_operations.py @@ -38,7 +38,6 @@ def test_backup_vaults_begin_create_or_update(self, resource_group): parameters={ "location": "str", "properties": { - "storageSettings": [{"datastoreType": "str", "type": "str"}], "bcdrSecurityLevel": "str", "featureSettings": { "crossRegionRestoreSettings": {"state": "str"}, @@ -68,6 +67,7 @@ def test_backup_vaults_begin_create_or_update(self, resource_group): "immutabilitySettings": {"state": "str"}, "softDeleteSettings": {"retentionDurationInDays": 0.0, "state": "str"}, }, + "storageSettings": [{"datastoreType": "str", "type": "str"}], }, "eTag": "str", "id": "str", diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_backup_vaults_operations_async.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_backup_vaults_operations_async.py index 75e4332ab172..ab78fd4b9517 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_backup_vaults_operations_async.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_backup_vaults_operations_async.py @@ -40,7 +40,6 @@ async def test_backup_vaults_begin_create_or_update(self, resource_group): parameters={ "location": "str", "properties": { - "storageSettings": [{"datastoreType": "str", "type": "str"}], "bcdrSecurityLevel": "str", "featureSettings": { "crossRegionRestoreSettings": {"state": "str"}, @@ -70,6 +69,7 @@ async def test_backup_vaults_begin_create_or_update(self, resource_group): "immutabilitySettings": {"state": "str"}, "softDeleteSettings": {"retentionDurationInDays": 0.0, "state": "str"}, }, + "storageSettings": [{"datastoreType": "str", "type": "str"}], }, "eTag": "str", "id": "str", diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_deleted_backup_vaults_operations.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_deleted_backup_vaults_operations.py new file mode 100644 index 000000000000..f8088f2290eb --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_deleted_backup_vaults_operations.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.dataprotection import DataProtectionMgmtClient + +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 TestDataProtectionMgmtDeletedBackupVaultsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(DataProtectionMgmtClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_deleted_backup_vaults_get(self, resource_group): + response = self.client.deleted_backup_vaults.get( + location="str", + deleted_vault_name="str", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_deleted_backup_vaults_list_by_location(self, resource_group): + response = self.client.deleted_backup_vaults.list_by_location( + location="str", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_deleted_backup_vaults_operations_async.py b/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_deleted_backup_vaults_operations_async.py new file mode 100644 index 000000000000..462d46f9e8d6 --- /dev/null +++ b/sdk/dataprotection/azure-mgmt-dataprotection/generated_tests/test_data_protection_mgmt_deleted_backup_vaults_operations_async.py @@ -0,0 +1,41 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.dataprotection.aio import DataProtectionMgmtClient + +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 TestDataProtectionMgmtDeletedBackupVaultsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(DataProtectionMgmtClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_deleted_backup_vaults_get(self, resource_group): + response = await self.client.deleted_backup_vaults.get( + location="str", + deleted_vault_name="str", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_deleted_backup_vaults_list_by_location(self, resource_group): + response = self.client.deleted_backup_vaults.list_by_location( + location="str", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/pyproject.toml b/sdk/dataprotection/azure-mgmt-dataprotection/pyproject.toml index bece716f9f87..60dcc5fd31c4 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/pyproject.toml +++ b/sdk/dataprotection/azure-mgmt-dataprotection/pyproject.toml @@ -13,7 +13,7 @@ authors = [ description = "Microsoft Azure Dataprotection Management Client Library for Python" license = "MIT" classifiers = [ - "Development Status :: 5 - Production/Stable", + "Development Status :: 4 - Beta", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", @@ -54,8 +54,8 @@ content-type = "text/markdown" [tool.setuptools.packages.find] exclude = [ "tests*", - "samples*", "generated_tests*", + "samples*", "generated_samples*", "doc*", "azure", @@ -79,7 +79,7 @@ package_name = "azure-mgmt-dataprotection" package_nspkg = "azure-mgmt-nspkg" package_pprint_name = "Data Protection Management" package_doc_id = "" -is_stable = true +is_stable = false is_arm = true title = "DataProtectionClient" need_msrestazure = false diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_operations_async_test.py b/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_operations_async_test.py index 621958a298c7..01a2542a9f2b 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_operations_async_test.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_operations_async_test.py @@ -13,6 +13,7 @@ AZURE_LOCATION = "eastus" + @pytest.mark.live_test_only class TestDataProtectionManagementOperationsAsync(AzureMgmtRecordedTestCase): def setup_method(self, method): diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_operations_test.py b/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_operations_test.py index 0c5c80fd5e49..e5bf5a782025 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_operations_test.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_operations_test.py @@ -12,6 +12,7 @@ AZURE_LOCATION = "eastus" + @pytest.mark.live_test_only class TestDataProtectionManagementOperations(AzureMgmtRecordedTestCase): def setup_method(self, method): diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_resourceguards_operations_async_test.py b/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_resourceguards_operations_async_test.py index e43937c00028..40ba389d340c 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_resourceguards_operations_async_test.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_resourceguards_operations_async_test.py @@ -13,6 +13,7 @@ AZURE_LOCATION = "eastus" + @pytest.mark.live_test_only class TestDataProtectionManagementResourceGuardsOperationsAsync(AzureMgmtRecordedTestCase): def setup_method(self, method): diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_resourceguards_operations_test.py b/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_resourceguards_operations_test.py index 798efd028dee..9a873669d88e 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_resourceguards_operations_test.py +++ b/sdk/dataprotection/azure-mgmt-dataprotection/tests/test_dataprotection_management_resourceguards_operations_test.py @@ -12,6 +12,7 @@ AZURE_LOCATION = "eastus" + @pytest.mark.live_test_only class TestDataProtectionManagementResourceGuardsOperations(AzureMgmtRecordedTestCase): def setup_method(self, method): diff --git a/sdk/dataprotection/azure-mgmt-dataprotection/tsp-location.yaml b/sdk/dataprotection/azure-mgmt-dataprotection/tsp-location.yaml index a10f4a945ab2..0afd4b14bbf9 100644 --- a/sdk/dataprotection/azure-mgmt-dataprotection/tsp-location.yaml +++ b/sdk/dataprotection/azure-mgmt-dataprotection/tsp-location.yaml @@ -1,4 +1,4 @@ directory: specification/dataprotection/resource-manager/Microsoft.DataProtection/DataProtection -commit: 6ba5680f1a58735e8f4d64ddbf8965e750cff9ee +commit: 32ab0a3f798fed9517cb4026e47144251ea9331e repo: Azure/azure-rest-api-specs additionalDirectories: