From b2b141cc3ab97f7ca0aa116ccaacded99e3fe238 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Fri, 27 Nov 2020 07:46:03 +0000 Subject: [PATCH] CodeGen from PR 10962 in Azure/azure-rest-api-specs Updating existing CRR APIs and protection APIs (#10962) * Fixing bug in PrepareDataMoveResponse Class * Updating existing CRR and protection APIs * Adding examples * Updating APIs to 2020-07-01 * Updating conflict * Resolving failures * Update * Update * Update * Update * Adding workloadCRRAccessToken * Adding discriminator for CRRAccesToken * Update * Reverting change to 2020-07-01 * Update * Update * Fixing prettier --- .../_recovery_services_backup_client.py | 10 + .../recoveryservicesbackup/models/__init__.py | 47 +- .../recoveryservicesbackup/models/_models.py | 449 ++++++++++++++--- .../models/_models_py3.py | 475 ++++++++++++++---- .../_recovery_services_backup_client_enums.py | 44 +- .../operations/__init__.py | 4 + ..._resource_encryption_configs_operations.py | 162 ++++++ ...e_data_move_operation_result_operations.py | 140 ++++++ ...overy_services_backup_client_operations.py | 248 ++++++++- 9 files changed, 1411 insertions(+), 168 deletions(-) create mode 100644 sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_backup_resource_encryption_configs_operations.py create mode 100644 sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_bms_prepare_data_move_operation_result_operations.py diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/_recovery_services_backup_client.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/_recovery_services_backup_client.py index 85a49fbd5e78..6fbd18ec9dbc 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/_recovery_services_backup_client.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/_recovery_services_backup_client.py @@ -14,6 +14,8 @@ from ._configuration import RecoveryServicesBackupClientConfiguration from .operations import RecoveryServicesBackupClientOperationsMixin +from .operations import BackupResourceEncryptionConfigsOperations +from .operations import BMSPrepareDataMoveOperationResultOperations from .operations import PrivateEndpointConnectionOperations from .operations import BackupResourceVaultConfigsOperations from .operations import ProtectedItemsOperations @@ -62,6 +64,10 @@ class RecoveryServicesBackupClient(RecoveryServicesBackupClientOperationsMixin, :ivar config: Configuration for client. :vartype config: RecoveryServicesBackupClientConfiguration + :ivar backup_resource_encryption_configs: BackupResourceEncryptionConfigs operations + :vartype backup_resource_encryption_configs: azure.mgmt.recoveryservicesbackup.operations.BackupResourceEncryptionConfigsOperations + :ivar bms_prepare_data_move_operation_result: BMSPrepareDataMoveOperationResult operations + :vartype bms_prepare_data_move_operation_result: azure.mgmt.recoveryservicesbackup.operations.BMSPrepareDataMoveOperationResultOperations :ivar private_endpoint_connection: PrivateEndpointConnection operations :vartype private_endpoint_connection: azure.mgmt.recoveryservicesbackup.operations.PrivateEndpointConnectionOperations :ivar backup_resource_vault_configs: BackupResourceVaultConfigs operations @@ -159,6 +165,10 @@ def __init__( self._serialize = Serializer(client_models) self._deserialize = Deserializer(client_models) + self.backup_resource_encryption_configs = BackupResourceEncryptionConfigsOperations( + self._client, self.config, self._serialize, self._deserialize) + self.bms_prepare_data_move_operation_result = BMSPrepareDataMoveOperationResultOperations( + self._client, self.config, self._serialize, self._deserialize) self.private_endpoint_connection = PrivateEndpointConnectionOperations( self._client, self.config, self._serialize, self._deserialize) self.backup_resource_vault_configs = BackupResourceVaultConfigsOperations( diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/__init__.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/__init__.py index 5e9531dfbb33..61e34bff9976 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/__init__.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/__init__.py @@ -102,6 +102,8 @@ from ._models_py3 import BackupRequestResource from ._models_py3 import BackupResourceConfig from ._models_py3 import BackupResourceConfigResource + from ._models_py3 import BackupResourceEncryptionConfig + from ._models_py3 import BackupResourceEncryptionConfigResource from ._models_py3 import BackupResourceVaultConfig from ._models_py3 import BackupResourceVaultConfigResource from ._models_py3 import BackupStatusRequest @@ -151,7 +153,6 @@ from ._models_py3 import GenericProtectionPolicy from ._models_py3 import GenericRecoveryPoint from ._models_py3 import GetProtectedItemQueryObject - from ._models_py3 import HealthDetails from ._models_py3 import IaasVMBackupRequest from ._models_py3 import IaaSVMContainer from ._models_py3 import IaasVMILRRegistrationRequest @@ -169,6 +170,7 @@ from ._models_py3 import JobResource from ._models_py3 import KEKDetails from ._models_py3 import KeyAndSecretDetails + from ._models_py3 import KPIResourceHealthDetails from ._models_py3 import LogSchedulePolicy from ._models_py3 import LongTermRetentionPolicy from ._models_py3 import LongTermSchedulePolicy @@ -184,6 +186,8 @@ from ._models_py3 import MabProtectionPolicy from ._models_py3 import MonthlyRetentionSchedule from ._models_py3 import NameInfo + from ._models_py3 import NewErrorResponse, NewErrorResponseException + from ._models_py3 import NewErrorResponseError from ._models_py3 import OperationResultInfo from ._models_py3 import OperationResultInfoBase from ._models_py3 import OperationResultInfoBaseResource @@ -196,6 +200,8 @@ from ._models_py3 import OperationWorkerResponse from ._models_py3 import PointInTimeRange from ._models_py3 import PreBackupValidation + from ._models_py3 import PrepareDataMoveRequest + from ._models_py3 import PrepareDataMoveResponse from ._models_py3 import PreValidateEnableBackupRequest from ._models_py3 import PreValidateEnableBackupResponse from ._models_py3 import PrivateEndpoint @@ -220,6 +226,7 @@ from ._models_py3 import RecoveryPointResource from ._models_py3 import RecoveryPointTierInformation from ._models_py3 import Resource + from ._models_py3 import ResourceHealthDetails from ._models_py3 import ResourceList from ._models_py3 import RestoreFileSpecs from ._models_py3 import RestoreRequest @@ -236,11 +243,13 @@ from ._models_py3 import TargetAFSRestoreInfo from ._models_py3 import TargetRestoreInfo from ._models_py3 import TokenInformation + from ._models_py3 import TriggerDataMoveRequest from ._models_py3 import ValidateIaasVMRestoreOperationRequest from ._models_py3 import ValidateOperationRequest from ._models_py3 import ValidateOperationResponse from ._models_py3 import ValidateOperationsResponse from ._models_py3 import ValidateRestoreOperationRequest + from ._models_py3 import VaultStorageConfigOperationResultResponse from ._models_py3 import WeeklyRetentionFormat from ._models_py3 import WeeklyRetentionSchedule from ._models_py3 import WorkloadInquiryDetails @@ -342,6 +351,8 @@ from ._models import BackupRequestResource from ._models import BackupResourceConfig from ._models import BackupResourceConfigResource + from ._models import BackupResourceEncryptionConfig + from ._models import BackupResourceEncryptionConfigResource from ._models import BackupResourceVaultConfig from ._models import BackupResourceVaultConfigResource from ._models import BackupStatusRequest @@ -391,7 +402,6 @@ from ._models import GenericProtectionPolicy from ._models import GenericRecoveryPoint from ._models import GetProtectedItemQueryObject - from ._models import HealthDetails from ._models import IaasVMBackupRequest from ._models import IaaSVMContainer from ._models import IaasVMILRRegistrationRequest @@ -409,6 +419,7 @@ from ._models import JobResource from ._models import KEKDetails from ._models import KeyAndSecretDetails + from ._models import KPIResourceHealthDetails from ._models import LogSchedulePolicy from ._models import LongTermRetentionPolicy from ._models import LongTermSchedulePolicy @@ -424,6 +435,8 @@ from ._models import MabProtectionPolicy from ._models import MonthlyRetentionSchedule from ._models import NameInfo + from ._models import NewErrorResponse, NewErrorResponseException + from ._models import NewErrorResponseError from ._models import OperationResultInfo from ._models import OperationResultInfoBase from ._models import OperationResultInfoBaseResource @@ -436,6 +449,8 @@ from ._models import OperationWorkerResponse from ._models import PointInTimeRange from ._models import PreBackupValidation + from ._models import PrepareDataMoveRequest + from ._models import PrepareDataMoveResponse from ._models import PreValidateEnableBackupRequest from ._models import PreValidateEnableBackupResponse from ._models import PrivateEndpoint @@ -460,6 +475,7 @@ from ._models import RecoveryPointResource from ._models import RecoveryPointTierInformation from ._models import Resource + from ._models import ResourceHealthDetails from ._models import ResourceList from ._models import RestoreFileSpecs from ._models import RestoreRequest @@ -476,11 +492,13 @@ from ._models import TargetAFSRestoreInfo from ._models import TargetRestoreInfo from ._models import TokenInformation + from ._models import TriggerDataMoveRequest from ._models import ValidateIaasVMRestoreOperationRequest from ._models import ValidateOperationRequest from ._models import ValidateOperationResponse from ._models import ValidateOperationsResponse from ._models import ValidateRestoreOperationRequest + from ._models import VaultStorageConfigOperationResultResponse from ._models import WeeklyRetentionFormat from ._models import WeeklyRetentionSchedule from ._models import WorkloadInquiryDetails @@ -502,17 +520,22 @@ from ._paged_models import WorkloadItemResourcePaged from ._paged_models import WorkloadProtectableItemResourcePaged from ._recovery_services_backup_client_enums import ( + EncryptionAtRestType, + LastUpdateStatus, + InfrastructureEncryptionState, + DataMoveLevel, OperationStatusValues, ProvisioningState, PrivateEndpointConnectionStatus, ProtectionState, - HealthStatus, + ResourceHealthStatus, RecoveryType, CopyOptions, RestoreRequestType, WorkloadType, PolicyType, JobSupportedAction, + HealthStatus, ProtectedItemState, LastBackupStatus, ProtectedItemHealthStatus, @@ -650,6 +673,8 @@ 'BackupRequestResource', 'BackupResourceConfig', 'BackupResourceConfigResource', + 'BackupResourceEncryptionConfig', + 'BackupResourceEncryptionConfigResource', 'BackupResourceVaultConfig', 'BackupResourceVaultConfigResource', 'BackupStatusRequest', @@ -699,7 +724,6 @@ 'GenericProtectionPolicy', 'GenericRecoveryPoint', 'GetProtectedItemQueryObject', - 'HealthDetails', 'IaasVMBackupRequest', 'IaaSVMContainer', 'IaasVMILRRegistrationRequest', @@ -717,6 +741,7 @@ 'JobResource', 'KEKDetails', 'KeyAndSecretDetails', + 'KPIResourceHealthDetails', 'LogSchedulePolicy', 'LongTermRetentionPolicy', 'LongTermSchedulePolicy', @@ -732,6 +757,8 @@ 'MabProtectionPolicy', 'MonthlyRetentionSchedule', 'NameInfo', + 'NewErrorResponse', 'NewErrorResponseException', + 'NewErrorResponseError', 'OperationResultInfo', 'OperationResultInfoBase', 'OperationResultInfoBaseResource', @@ -744,6 +771,8 @@ 'OperationWorkerResponse', 'PointInTimeRange', 'PreBackupValidation', + 'PrepareDataMoveRequest', + 'PrepareDataMoveResponse', 'PreValidateEnableBackupRequest', 'PreValidateEnableBackupResponse', 'PrivateEndpoint', @@ -768,6 +797,7 @@ 'RecoveryPointResource', 'RecoveryPointTierInformation', 'Resource', + 'ResourceHealthDetails', 'ResourceList', 'RestoreFileSpecs', 'RestoreRequest', @@ -784,11 +814,13 @@ 'TargetAFSRestoreInfo', 'TargetRestoreInfo', 'TokenInformation', + 'TriggerDataMoveRequest', 'ValidateIaasVMRestoreOperationRequest', 'ValidateOperationRequest', 'ValidateOperationResponse', 'ValidateOperationsResponse', 'ValidateRestoreOperationRequest', + 'VaultStorageConfigOperationResultResponse', 'WeeklyRetentionFormat', 'WeeklyRetentionSchedule', 'WorkloadInquiryDetails', @@ -809,17 +841,22 @@ 'WorkloadProtectableItemResourcePaged', 'ProtectionContainerResourcePaged', 'ClientDiscoveryValueForSingleApiPaged', + 'EncryptionAtRestType', + 'LastUpdateStatus', + 'InfrastructureEncryptionState', + 'DataMoveLevel', 'OperationStatusValues', 'ProvisioningState', 'PrivateEndpointConnectionStatus', 'ProtectionState', - 'HealthStatus', + 'ResourceHealthStatus', 'RecoveryType', 'CopyOptions', 'RestoreRequestType', 'WorkloadType', 'PolicyType', 'JobSupportedAction', + 'HealthStatus', 'ProtectedItemState', 'LastBackupStatus', 'ProtectedItemHealthStatus', diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_models.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_models.py index 34ff6d9b22a5..05126b5cbc4d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_models.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_models.py @@ -742,21 +742,15 @@ class AzureFileshareProtectedItem(ProtectedItem): 'ProtectionStopped', 'ProtectionPaused' :type protection_state: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectionState - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param last_backup_status: Last backup operation status. Possible values: Healthy, Unhealthy. :type last_backup_status: str :param last_backup_time: Timestamp of the last backup operation on this backup item. :type last_backup_time: datetime + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] :param extended_info: Additional information with this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureFileshareProtectedItemExtendedInfo @@ -784,10 +778,9 @@ class AzureFileshareProtectedItem(ProtectedItem): 'friendly_name': {'key': 'friendlyName', 'type': 'str'}, 'protection_status': {'key': 'protectionStatus', 'type': 'str'}, 'protection_state': {'key': 'protectionState', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'last_backup_status': {'key': 'lastBackupStatus', 'type': 'str'}, 'last_backup_time': {'key': 'lastBackupTime', 'type': 'iso-8601'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureFileshareProtectedItemExtendedInfo'}, } @@ -796,10 +789,9 @@ def __init__(self, **kwargs): self.friendly_name = kwargs.get('friendly_name', None) self.protection_status = kwargs.get('protection_status', None) self.protection_state = kwargs.get('protection_state', None) - self.health_status = kwargs.get('health_status', None) - self.health_details = kwargs.get('health_details', None) self.last_backup_status = kwargs.get('last_backup_status', None) self.last_backup_time = kwargs.get('last_backup_time', None) + self.kpis_healths = kwargs.get('kpis_healths', None) self.extended_info = kwargs.get('extended_info', None) self.protected_item_type = 'AzureFileShareProtectedItem' @@ -1435,14 +1427,15 @@ class AzureIaaSVMProtectedItem(ProtectedItem): :type protection_state: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectionState :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' + include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Invalid' :type health_status: str or ~azure.mgmt.recoveryservicesbackup.models.HealthStatus :param health_details: Health details on this backup item. :type health_details: list[~azure.mgmt.recoveryservicesbackup.models.AzureIaaSVMHealthDetails] + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] :param last_backup_status: Last backup operation status. :type last_backup_status: str :param last_backup_time: Timestamp of the last backup operation on this @@ -1483,6 +1476,7 @@ class AzureIaaSVMProtectedItem(ProtectedItem): 'protection_state': {'key': 'protectionState', 'type': 'str'}, 'health_status': {'key': 'healthStatus', 'type': 'str'}, 'health_details': {'key': 'healthDetails', 'type': '[AzureIaaSVMHealthDetails]'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, 'last_backup_status': {'key': 'lastBackupStatus', 'type': 'str'}, 'last_backup_time': {'key': 'lastBackupTime', 'type': 'iso-8601'}, 'protected_item_data_id': {'key': 'protectedItemDataId', 'type': 'str'}, @@ -1502,6 +1496,7 @@ def __init__(self, **kwargs): self.protection_state = kwargs.get('protection_state', None) self.health_status = kwargs.get('health_status', None) self.health_details = kwargs.get('health_details', None) + self.kpis_healths = kwargs.get('kpis_healths', None) self.last_backup_status = kwargs.get('last_backup_status', None) self.last_backup_time = kwargs.get('last_backup_time', None) self.protected_item_data_id = kwargs.get('protected_item_data_id', None) @@ -1575,14 +1570,15 @@ class AzureIaaSClassicComputeVMProtectedItem(AzureIaaSVMProtectedItem): :type protection_state: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectionState :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' + include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Invalid' :type health_status: str or ~azure.mgmt.recoveryservicesbackup.models.HealthStatus :param health_details: Health details on this backup item. :type health_details: list[~azure.mgmt.recoveryservicesbackup.models.AzureIaaSVMHealthDetails] + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] :param last_backup_status: Last backup operation status. :type last_backup_status: str :param last_backup_time: Timestamp of the last backup operation on this @@ -1623,6 +1619,7 @@ class AzureIaaSClassicComputeVMProtectedItem(AzureIaaSVMProtectedItem): 'protection_state': {'key': 'protectionState', 'type': 'str'}, 'health_status': {'key': 'healthStatus', 'type': 'str'}, 'health_details': {'key': 'healthDetails', 'type': '[AzureIaaSVMHealthDetails]'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, 'last_backup_status': {'key': 'lastBackupStatus', 'type': 'str'}, 'last_backup_time': {'key': 'lastBackupTime', 'type': 'iso-8601'}, 'protected_item_data_id': {'key': 'protectedItemDataId', 'type': 'str'}, @@ -1794,14 +1791,15 @@ class AzureIaaSComputeVMProtectedItem(AzureIaaSVMProtectedItem): :type protection_state: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectionState :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' + include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Invalid' :type health_status: str or ~azure.mgmt.recoveryservicesbackup.models.HealthStatus :param health_details: Health details on this backup item. :type health_details: list[~azure.mgmt.recoveryservicesbackup.models.AzureIaaSVMHealthDetails] + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] :param last_backup_status: Last backup operation status. :type last_backup_status: str :param last_backup_time: Timestamp of the last backup operation on this @@ -1842,6 +1840,7 @@ class AzureIaaSComputeVMProtectedItem(AzureIaaSVMProtectedItem): 'protection_state': {'key': 'protectionState', 'type': 'str'}, 'health_status': {'key': 'healthStatus', 'type': 'str'}, 'health_details': {'key': 'healthDetails', 'type': '[AzureIaaSVMHealthDetails]'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, 'last_backup_status': {'key': 'lastBackupStatus', 'type': 'str'}, 'last_backup_time': {'key': 'lastBackupTime', 'type': 'iso-8601'}, 'protected_item_data_id': {'key': 'protectedItemDataId', 'type': 'str'}, @@ -1894,7 +1893,7 @@ def __init__(self, **kwargs): self.recommendations = None -class HealthDetails(Model): +class ResourceHealthDetails(Model): """Health Details for backup items. Variables are only populated by the server, and will be ignored when @@ -1925,14 +1924,14 @@ class HealthDetails(Model): } def __init__(self, **kwargs): - super(HealthDetails, self).__init__(**kwargs) + super(ResourceHealthDetails, self).__init__(**kwargs) self.code = None self.title = None self.message = None self.recommendations = None -class AzureIaaSVMHealthDetails(HealthDetails): +class AzureIaaSVMHealthDetails(ResourceHealthDetails): """Azure IaaS VM workload-specific Health Details. Variables are only populated by the server, and will be ignored when @@ -3506,18 +3505,12 @@ class AzureVmWorkloadProtectedItem(ProtectedItem): 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending' :type protected_item_health_status: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectedItemHealthStatus - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param extended_info: Additional information for this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureVmWorkloadProtectedItemExtendedInfo + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] """ _validation = { @@ -3550,9 +3543,8 @@ class AzureVmWorkloadProtectedItem(ProtectedItem): 'last_backup_error_detail': {'key': 'lastBackupErrorDetail', 'type': 'ErrorDetail'}, 'protected_item_data_source_id': {'key': 'protectedItemDataSourceId', 'type': 'str'}, 'protected_item_health_status': {'key': 'protectedItemHealthStatus', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureVmWorkloadProtectedItemExtendedInfo'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, } _subtype_map = { @@ -3572,9 +3564,8 @@ def __init__(self, **kwargs): self.last_backup_error_detail = kwargs.get('last_backup_error_detail', None) self.protected_item_data_source_id = kwargs.get('protected_item_data_source_id', None) self.protected_item_health_status = kwargs.get('protected_item_health_status', None) - self.health_status = kwargs.get('health_status', None) - self.health_details = kwargs.get('health_details', None) self.extended_info = kwargs.get('extended_info', None) + self.kpis_healths = kwargs.get('kpis_healths', None) self.protected_item_type = 'AzureVmWorkloadProtectedItem' @@ -3740,18 +3731,12 @@ class AzureVmWorkloadSAPAseDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending' :type protected_item_health_status: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectedItemHealthStatus - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param extended_info: Additional information for this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureVmWorkloadProtectedItemExtendedInfo + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] """ _validation = { @@ -3784,9 +3769,8 @@ class AzureVmWorkloadSAPAseDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'last_backup_error_detail': {'key': 'lastBackupErrorDetail', 'type': 'ErrorDetail'}, 'protected_item_data_source_id': {'key': 'protectedItemDataSourceId', 'type': 'str'}, 'protected_item_health_status': {'key': 'protectedItemHealthStatus', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureVmWorkloadProtectedItemExtendedInfo'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, } def __init__(self, **kwargs): @@ -4129,18 +4113,12 @@ class AzureVmWorkloadSAPHanaDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending' :type protected_item_health_status: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectedItemHealthStatus - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param extended_info: Additional information for this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureVmWorkloadProtectedItemExtendedInfo + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] """ _validation = { @@ -4173,9 +4151,8 @@ class AzureVmWorkloadSAPHanaDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'last_backup_error_detail': {'key': 'lastBackupErrorDetail', 'type': 'ErrorDetail'}, 'protected_item_data_source_id': {'key': 'protectedItemDataSourceId', 'type': 'str'}, 'protected_item_health_status': {'key': 'protectedItemHealthStatus', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureVmWorkloadProtectedItemExtendedInfo'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, } def __init__(self, **kwargs): @@ -4588,18 +4565,12 @@ class AzureVmWorkloadSQLDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending' :type protected_item_health_status: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectedItemHealthStatus - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param extended_info: Additional information for this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureVmWorkloadProtectedItemExtendedInfo + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] """ _validation = { @@ -4632,9 +4603,8 @@ class AzureVmWorkloadSQLDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'last_backup_error_detail': {'key': 'lastBackupErrorDetail', 'type': 'ErrorDetail'}, 'protected_item_data_source_id': {'key': 'protectedItemDataSourceId', 'type': 'str'}, 'protected_item_health_status': {'key': 'protectedItemHealthStatus', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureVmWorkloadProtectedItemExtendedInfo'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, } def __init__(self, **kwargs): @@ -6091,6 +6061,90 @@ def __init__(self, **kwargs): self.properties = kwargs.get('properties', None) +class BackupResourceEncryptionConfig(Model): + """BackupResourceEncryptionConfig. + + :param encryption_at_rest_type: Encryption At Rest Type. Possible values + include: 'Invalid', 'MicrosoftManaged', 'CustomerManaged' + :type encryption_at_rest_type: str or + ~azure.mgmt.recoveryservicesbackup.models.EncryptionAtRestType + :param key_uri: Key Vault Key URI + :type key_uri: str + :param subscription_id: Key Vault Subscription Id + :type subscription_id: str + :param last_update_status: Possible values include: 'Invalid', + 'NotEnabled', 'PartiallySucceeded', 'PartiallyFailed', 'Failed', + 'Succeeded' + :type last_update_status: str or + ~azure.mgmt.recoveryservicesbackup.models.LastUpdateStatus + :param infrastructure_encryption_state: Possible values include: + 'Invalid', 'Disabled', 'Enabled' + :type infrastructure_encryption_state: str or + ~azure.mgmt.recoveryservicesbackup.models.InfrastructureEncryptionState + """ + + _attribute_map = { + 'encryption_at_rest_type': {'key': 'encryptionAtRestType', 'type': 'str'}, + 'key_uri': {'key': 'keyUri', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + 'last_update_status': {'key': 'lastUpdateStatus', 'type': 'str'}, + 'infrastructure_encryption_state': {'key': 'infrastructureEncryptionState', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(BackupResourceEncryptionConfig, self).__init__(**kwargs) + self.encryption_at_rest_type = kwargs.get('encryption_at_rest_type', None) + self.key_uri = kwargs.get('key_uri', None) + self.subscription_id = kwargs.get('subscription_id', None) + self.last_update_status = kwargs.get('last_update_status', None) + self.infrastructure_encryption_state = kwargs.get('infrastructure_encryption_state', None) + + +class BackupResourceEncryptionConfigResource(Resource): + """BackupResourceEncryptionConfigResource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource Id represents the complete path to the resource. + :vartype id: str + :ivar name: Resource name associated with the resource. + :vartype name: str + :ivar type: Resource type represents the complete path of the form + Namespace/ResourceType/ResourceType/... + :vartype type: str + :param location: Resource location. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param e_tag: Optional ETag. + :type e_tag: str + :param properties: BackupResourceEncryptionConfigResource properties + :type properties: + ~azure.mgmt.recoveryservicesbackup.models.BackupResourceEncryptionConfig + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'BackupResourceEncryptionConfig'}, + } + + def __init__(self, **kwargs): + super(BackupResourceEncryptionConfigResource, self).__init__(**kwargs) + self.properties = kwargs.get('properties', None) + + class BackupResourceVaultConfig(Model): """Backup resource vault config details. @@ -7395,7 +7449,11 @@ def __init__(self, **kwargs): class ErrorResponse(Model): - """The resource management error response. + """Error Response. + + Common error response for all Azure Resource Manager APIs to return error + details for failed operations. (This also follows the OData error response + format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -8364,6 +8422,30 @@ def __init__(self, **kwargs): self.encryption_mechanism = kwargs.get('encryption_mechanism', None) +class KPIResourceHealthDetails(Model): + """KPI Resource Health Details. + + :param resource_health_status: Resource Health Status. Possible values + include: 'Healthy', 'TransientDegraded', 'PersistentDegraded', + 'TransientUnhealthy', 'PersistentUnhealthy', 'Invalid' + :type resource_health_status: str or + ~azure.mgmt.recoveryservicesbackup.models.ResourceHealthStatus + :param resource_health_details: Resource Health Status + :type resource_health_details: + list[~azure.mgmt.recoveryservicesbackup.models.ResourceHealthDetails] + """ + + _attribute_map = { + 'resource_health_status': {'key': 'resourceHealthStatus', 'type': 'str'}, + 'resource_health_details': {'key': 'resourceHealthDetails', 'type': '[ResourceHealthDetails]'}, + } + + def __init__(self, **kwargs): + super(KPIResourceHealthDetails, self).__init__(**kwargs) + self.resource_health_status = kwargs.get('resource_health_status', None) + self.resource_health_details = kwargs.get('resource_health_details', None) + + class SchedulePolicy(Model): """Base class for backup schedule. @@ -9059,6 +9141,80 @@ def __init__(self, **kwargs): self.localized_value = kwargs.get('localized_value', None) +class NewErrorResponse(Model): + """The resource management error response. + + :param error: The error object. + :type error: + ~azure.mgmt.recoveryservicesbackup.models.NewErrorResponseError + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'NewErrorResponseError'}, + } + + def __init__(self, **kwargs): + super(NewErrorResponse, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class NewErrorResponseException(HttpOperationError): + """Server responsed with exception of type: 'NewErrorResponse'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(NewErrorResponseException, self).__init__(deserialize, response, 'NewErrorResponse', *args) + + +class NewErrorResponseError(Model): + """The error object. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar code: The error code. + :vartype code: str + :ivar message: The error message. + :vartype message: str + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: + list[~azure.mgmt.recoveryservicesbackup.models.NewErrorResponse] + :ivar additional_info: The error additional info. + :vartype additional_info: + list[~azure.mgmt.recoveryservicesbackup.models.ErrorAdditionalInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NewErrorResponse]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + } + + def __init__(self, **kwargs): + super(NewErrorResponseError, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + class OperationResultInfo(OperationResultInfoBase): """Operation result info. @@ -9382,6 +9538,108 @@ def __init__(self, **kwargs): self.message = kwargs.get('message', None) +class PrepareDataMoveRequest(Model): + """Prepare DataMove Request. + + All required parameters must be populated in order to send to Azure. + + :param target_resource_id: Required. ARM Id of target vault + :type target_resource_id: str + :param target_region: Required. Target Region + :type target_region: str + :param data_move_level: Required. DataMove Level. Possible values include: + 'Invalid', 'Vault', 'Container' + :type data_move_level: str or + ~azure.mgmt.recoveryservicesbackup.models.DataMoveLevel + :param source_container_arm_ids: Source Container ArmIds + This needs to be populated only if DataMoveLevel is set to container + :type source_container_arm_ids: list[str] + :param ignore_moved: Ignore the artifacts which are already moved. + :type ignore_moved: bool + """ + + _validation = { + 'target_resource_id': {'required': True}, + 'target_region': {'required': True}, + 'data_move_level': {'required': True}, + } + + _attribute_map = { + 'target_resource_id': {'key': 'targetResourceId', 'type': 'str'}, + 'target_region': {'key': 'targetRegion', 'type': 'str'}, + 'data_move_level': {'key': 'dataMoveLevel', 'type': 'str'}, + 'source_container_arm_ids': {'key': 'sourceContainerArmIds', 'type': '[str]'}, + 'ignore_moved': {'key': 'ignoreMoved', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(PrepareDataMoveRequest, self).__init__(**kwargs) + self.target_resource_id = kwargs.get('target_resource_id', None) + self.target_region = kwargs.get('target_region', None) + self.data_move_level = kwargs.get('data_move_level', None) + self.source_container_arm_ids = kwargs.get('source_container_arm_ids', None) + self.ignore_moved = kwargs.get('ignore_moved', None) + + +class VaultStorageConfigOperationResultResponse(Model): + """Operation result response for Vault Storage Config. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: PrepareDataMoveResponse + + All required parameters must be populated in order to send to Azure. + + :param object_type: Required. Constant filled by server. + :type object_type: str + """ + + _validation = { + 'object_type': {'required': True}, + } + + _attribute_map = { + 'object_type': {'key': 'objectType', 'type': 'str'}, + } + + _subtype_map = { + 'object_type': {'PrepareDataMoveResponse': 'PrepareDataMoveResponse'} + } + + def __init__(self, **kwargs): + super(VaultStorageConfigOperationResultResponse, self).__init__(**kwargs) + self.object_type = None + + +class PrepareDataMoveResponse(VaultStorageConfigOperationResultResponse): + """Prepare DataMove Response. + + All required parameters must be populated in order to send to Azure. + + :param object_type: Required. Constant filled by server. + :type object_type: str + :param correlation_id: Co-relationId for move operation + :type correlation_id: str + :param source_vault_properties: Source Vault Properties + :type source_vault_properties: dict[str, str] + """ + + _validation = { + 'object_type': {'required': True}, + } + + _attribute_map = { + 'object_type': {'key': 'objectType', 'type': 'str'}, + 'correlation_id': {'key': 'correlationId', 'type': 'str'}, + 'source_vault_properties': {'key': 'sourceVaultProperties', 'type': '{str}'}, + } + + def __init__(self, **kwargs): + super(PrepareDataMoveResponse, self).__init__(**kwargs) + self.correlation_id = kwargs.get('correlation_id', None) + self.source_vault_properties = kwargs.get('source_vault_properties', None) + self.object_type = 'PrepareDataMoveResponse' + + class PreValidateEnableBackupRequest(Model): """Contract to validate if backup can be enabled on the given resource in a given vault and given configuration. @@ -10403,6 +10661,53 @@ def __init__(self, **kwargs): self.security_pin = kwargs.get('security_pin', None) +class TriggerDataMoveRequest(Model): + """Trigger DataMove Request. + + All required parameters must be populated in order to send to Azure. + + :param source_resource_id: Required. ARM Id of source vault + :type source_resource_id: str + :param source_region: Required. Source Region + :type source_region: str + :param data_move_level: Required. DataMove Level. Possible values include: + 'Invalid', 'Vault', 'Container' + :type data_move_level: str or + ~azure.mgmt.recoveryservicesbackup.models.DataMoveLevel + :param correlation_id: Required. Correlation Id + :type correlation_id: str + :param source_container_arm_ids: Source Container ArmIds + :type source_container_arm_ids: list[str] + :param pause_gc: Pause GC + :type pause_gc: bool + """ + + _validation = { + 'source_resource_id': {'required': True}, + 'source_region': {'required': True}, + 'data_move_level': {'required': True}, + 'correlation_id': {'required': True}, + } + + _attribute_map = { + 'source_resource_id': {'key': 'sourceResourceId', 'type': 'str'}, + 'source_region': {'key': 'sourceRegion', 'type': 'str'}, + 'data_move_level': {'key': 'dataMoveLevel', 'type': 'str'}, + 'correlation_id': {'key': 'correlationId', 'type': 'str'}, + 'source_container_arm_ids': {'key': 'sourceContainerArmIds', 'type': '[str]'}, + 'pause_gc': {'key': 'pauseGC', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(TriggerDataMoveRequest, self).__init__(**kwargs) + self.source_resource_id = kwargs.get('source_resource_id', None) + self.source_region = kwargs.get('source_region', None) + self.data_move_level = kwargs.get('data_move_level', None) + self.correlation_id = kwargs.get('correlation_id', None) + self.source_container_arm_ids = kwargs.get('source_container_arm_ids', None) + self.pause_gc = kwargs.get('pause_gc', None) + + class ValidateOperationRequest(Model): """Base class for validate operation request. diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_models_py3.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_models_py3.py index f65b7770d307..84aeaa79d257 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_models_py3.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_models_py3.py @@ -742,21 +742,15 @@ class AzureFileshareProtectedItem(ProtectedItem): 'ProtectionStopped', 'ProtectionPaused' :type protection_state: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectionState - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param last_backup_status: Last backup operation status. Possible values: Healthy, Unhealthy. :type last_backup_status: str :param last_backup_time: Timestamp of the last backup operation on this backup item. :type last_backup_time: datetime + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] :param extended_info: Additional information with this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureFileshareProtectedItemExtendedInfo @@ -784,22 +778,20 @@ class AzureFileshareProtectedItem(ProtectedItem): 'friendly_name': {'key': 'friendlyName', 'type': 'str'}, 'protection_status': {'key': 'protectionStatus', 'type': 'str'}, 'protection_state': {'key': 'protectionState', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'last_backup_status': {'key': 'lastBackupStatus', 'type': 'str'}, 'last_backup_time': {'key': 'lastBackupTime', 'type': 'iso-8601'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureFileshareProtectedItemExtendedInfo'}, } - def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, protection_status: str=None, protection_state=None, health_status=None, health_details=None, last_backup_status: str=None, last_backup_time=None, extended_info=None, **kwargs) -> None: + def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, protection_status: str=None, protection_state=None, last_backup_status: str=None, last_backup_time=None, kpis_healths=None, extended_info=None, **kwargs) -> None: super(AzureFileshareProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, **kwargs) self.friendly_name = friendly_name self.protection_status = protection_status self.protection_state = protection_state - self.health_status = health_status - self.health_details = health_details self.last_backup_status = last_backup_status self.last_backup_time = last_backup_time + self.kpis_healths = kpis_healths self.extended_info = extended_info self.protected_item_type = 'AzureFileShareProtectedItem' @@ -1435,14 +1427,15 @@ class AzureIaaSVMProtectedItem(ProtectedItem): :type protection_state: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectionState :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' + include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Invalid' :type health_status: str or ~azure.mgmt.recoveryservicesbackup.models.HealthStatus :param health_details: Health details on this backup item. :type health_details: list[~azure.mgmt.recoveryservicesbackup.models.AzureIaaSVMHealthDetails] + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] :param last_backup_status: Last backup operation status. :type last_backup_status: str :param last_backup_time: Timestamp of the last backup operation on this @@ -1483,6 +1476,7 @@ class AzureIaaSVMProtectedItem(ProtectedItem): 'protection_state': {'key': 'protectionState', 'type': 'str'}, 'health_status': {'key': 'healthStatus', 'type': 'str'}, 'health_details': {'key': 'healthDetails', 'type': '[AzureIaaSVMHealthDetails]'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, 'last_backup_status': {'key': 'lastBackupStatus', 'type': 'str'}, 'last_backup_time': {'key': 'lastBackupTime', 'type': 'iso-8601'}, 'protected_item_data_id': {'key': 'protectedItemDataId', 'type': 'str'}, @@ -1494,7 +1488,7 @@ class AzureIaaSVMProtectedItem(ProtectedItem): 'protected_item_type': {'Microsoft.ClassicCompute/virtualMachines': 'AzureIaaSClassicComputeVMProtectedItem', 'Microsoft.Compute/virtualMachines': 'AzureIaaSComputeVMProtectedItem'} } - def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, virtual_machine_id: str=None, protection_status: str=None, protection_state=None, health_status=None, health_details=None, last_backup_status: str=None, last_backup_time=None, protected_item_data_id: str=None, extended_info=None, extended_properties=None, **kwargs) -> None: + def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, virtual_machine_id: str=None, protection_status: str=None, protection_state=None, health_status=None, health_details=None, kpis_healths=None, last_backup_status: str=None, last_backup_time=None, protected_item_data_id: str=None, extended_info=None, extended_properties=None, **kwargs) -> None: super(AzureIaaSVMProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, **kwargs) self.friendly_name = friendly_name self.virtual_machine_id = virtual_machine_id @@ -1502,6 +1496,7 @@ def __init__(self, *, backup_management_type=None, workload_type=None, container self.protection_state = protection_state self.health_status = health_status self.health_details = health_details + self.kpis_healths = kpis_healths self.last_backup_status = last_backup_status self.last_backup_time = last_backup_time self.protected_item_data_id = protected_item_data_id @@ -1575,14 +1570,15 @@ class AzureIaaSClassicComputeVMProtectedItem(AzureIaaSVMProtectedItem): :type protection_state: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectionState :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' + include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Invalid' :type health_status: str or ~azure.mgmt.recoveryservicesbackup.models.HealthStatus :param health_details: Health details on this backup item. :type health_details: list[~azure.mgmt.recoveryservicesbackup.models.AzureIaaSVMHealthDetails] + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] :param last_backup_status: Last backup operation status. :type last_backup_status: str :param last_backup_time: Timestamp of the last backup operation on this @@ -1623,6 +1619,7 @@ class AzureIaaSClassicComputeVMProtectedItem(AzureIaaSVMProtectedItem): 'protection_state': {'key': 'protectionState', 'type': 'str'}, 'health_status': {'key': 'healthStatus', 'type': 'str'}, 'health_details': {'key': 'healthDetails', 'type': '[AzureIaaSVMHealthDetails]'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, 'last_backup_status': {'key': 'lastBackupStatus', 'type': 'str'}, 'last_backup_time': {'key': 'lastBackupTime', 'type': 'iso-8601'}, 'protected_item_data_id': {'key': 'protectedItemDataId', 'type': 'str'}, @@ -1630,8 +1627,8 @@ class AzureIaaSClassicComputeVMProtectedItem(AzureIaaSVMProtectedItem): 'extended_properties': {'key': 'extendedProperties', 'type': 'ExtendedProperties'}, } - def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, virtual_machine_id: str=None, protection_status: str=None, protection_state=None, health_status=None, health_details=None, last_backup_status: str=None, last_backup_time=None, protected_item_data_id: str=None, extended_info=None, extended_properties=None, **kwargs) -> None: - super(AzureIaaSClassicComputeVMProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, virtual_machine_id=virtual_machine_id, protection_status=protection_status, protection_state=protection_state, health_status=health_status, health_details=health_details, last_backup_status=last_backup_status, last_backup_time=last_backup_time, protected_item_data_id=protected_item_data_id, extended_info=extended_info, extended_properties=extended_properties, **kwargs) + def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, virtual_machine_id: str=None, protection_status: str=None, protection_state=None, health_status=None, health_details=None, kpis_healths=None, last_backup_status: str=None, last_backup_time=None, protected_item_data_id: str=None, extended_info=None, extended_properties=None, **kwargs) -> None: + super(AzureIaaSClassicComputeVMProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, virtual_machine_id=virtual_machine_id, protection_status=protection_status, protection_state=protection_state, health_status=health_status, health_details=health_details, kpis_healths=kpis_healths, last_backup_status=last_backup_status, last_backup_time=last_backup_time, protected_item_data_id=protected_item_data_id, extended_info=extended_info, extended_properties=extended_properties, **kwargs) self.protected_item_type = 'Microsoft.ClassicCompute/virtualMachines' @@ -1794,14 +1791,15 @@ class AzureIaaSComputeVMProtectedItem(AzureIaaSVMProtectedItem): :type protection_state: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectionState :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' + include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Invalid' :type health_status: str or ~azure.mgmt.recoveryservicesbackup.models.HealthStatus :param health_details: Health details on this backup item. :type health_details: list[~azure.mgmt.recoveryservicesbackup.models.AzureIaaSVMHealthDetails] + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] :param last_backup_status: Last backup operation status. :type last_backup_status: str :param last_backup_time: Timestamp of the last backup operation on this @@ -1842,6 +1840,7 @@ class AzureIaaSComputeVMProtectedItem(AzureIaaSVMProtectedItem): 'protection_state': {'key': 'protectionState', 'type': 'str'}, 'health_status': {'key': 'healthStatus', 'type': 'str'}, 'health_details': {'key': 'healthDetails', 'type': '[AzureIaaSVMHealthDetails]'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, 'last_backup_status': {'key': 'lastBackupStatus', 'type': 'str'}, 'last_backup_time': {'key': 'lastBackupTime', 'type': 'iso-8601'}, 'protected_item_data_id': {'key': 'protectedItemDataId', 'type': 'str'}, @@ -1849,8 +1848,8 @@ class AzureIaaSComputeVMProtectedItem(AzureIaaSVMProtectedItem): 'extended_properties': {'key': 'extendedProperties', 'type': 'ExtendedProperties'}, } - def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, virtual_machine_id: str=None, protection_status: str=None, protection_state=None, health_status=None, health_details=None, last_backup_status: str=None, last_backup_time=None, protected_item_data_id: str=None, extended_info=None, extended_properties=None, **kwargs) -> None: - super(AzureIaaSComputeVMProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, virtual_machine_id=virtual_machine_id, protection_status=protection_status, protection_state=protection_state, health_status=health_status, health_details=health_details, last_backup_status=last_backup_status, last_backup_time=last_backup_time, protected_item_data_id=protected_item_data_id, extended_info=extended_info, extended_properties=extended_properties, **kwargs) + def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, virtual_machine_id: str=None, protection_status: str=None, protection_state=None, health_status=None, health_details=None, kpis_healths=None, last_backup_status: str=None, last_backup_time=None, protected_item_data_id: str=None, extended_info=None, extended_properties=None, **kwargs) -> None: + super(AzureIaaSComputeVMProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, virtual_machine_id=virtual_machine_id, protection_status=protection_status, protection_state=protection_state, health_status=health_status, health_details=health_details, kpis_healths=kpis_healths, last_backup_status=last_backup_status, last_backup_time=last_backup_time, protected_item_data_id=protected_item_data_id, extended_info=extended_info, extended_properties=extended_properties, **kwargs) self.protected_item_type = 'Microsoft.Compute/virtualMachines' @@ -1894,7 +1893,7 @@ def __init__(self, **kwargs) -> None: self.recommendations = None -class HealthDetails(Model): +class ResourceHealthDetails(Model): """Health Details for backup items. Variables are only populated by the server, and will be ignored when @@ -1925,14 +1924,14 @@ class HealthDetails(Model): } def __init__(self, **kwargs) -> None: - super(HealthDetails, self).__init__(**kwargs) + super(ResourceHealthDetails, self).__init__(**kwargs) self.code = None self.title = None self.message = None self.recommendations = None -class AzureIaaSVMHealthDetails(HealthDetails): +class AzureIaaSVMHealthDetails(ResourceHealthDetails): """Azure IaaS VM workload-specific Health Details. Variables are only populated by the server, and will be ignored when @@ -3506,18 +3505,12 @@ class AzureVmWorkloadProtectedItem(ProtectedItem): 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending' :type protected_item_health_status: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectedItemHealthStatus - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param extended_info: Additional information for this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureVmWorkloadProtectedItemExtendedInfo + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] """ _validation = { @@ -3550,16 +3543,15 @@ class AzureVmWorkloadProtectedItem(ProtectedItem): 'last_backup_error_detail': {'key': 'lastBackupErrorDetail', 'type': 'ErrorDetail'}, 'protected_item_data_source_id': {'key': 'protectedItemDataSourceId', 'type': 'str'}, 'protected_item_health_status': {'key': 'protectedItemHealthStatus', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureVmWorkloadProtectedItemExtendedInfo'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, } _subtype_map = { 'protected_item_type': {'AzureVmWorkloadSAPAseDatabase': 'AzureVmWorkloadSAPAseDatabaseProtectedItem', 'AzureVmWorkloadSAPHanaDatabase': 'AzureVmWorkloadSAPHanaDatabaseProtectedItem', 'AzureVmWorkloadSQLDatabase': 'AzureVmWorkloadSQLDatabaseProtectedItem'} } - def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, server_name: str=None, parent_name: str=None, parent_type: str=None, protection_status: str=None, protection_state=None, last_backup_status=None, last_backup_time=None, last_backup_error_detail=None, protected_item_data_source_id: str=None, protected_item_health_status=None, health_status=None, health_details=None, extended_info=None, **kwargs) -> None: + def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, server_name: str=None, parent_name: str=None, parent_type: str=None, protection_status: str=None, protection_state=None, last_backup_status=None, last_backup_time=None, last_backup_error_detail=None, protected_item_data_source_id: str=None, protected_item_health_status=None, extended_info=None, kpis_healths=None, **kwargs) -> None: super(AzureVmWorkloadProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, **kwargs) self.friendly_name = friendly_name self.server_name = server_name @@ -3572,9 +3564,8 @@ def __init__(self, *, backup_management_type=None, workload_type=None, container self.last_backup_error_detail = last_backup_error_detail self.protected_item_data_source_id = protected_item_data_source_id self.protected_item_health_status = protected_item_health_status - self.health_status = health_status - self.health_details = health_details self.extended_info = extended_info + self.kpis_healths = kpis_healths self.protected_item_type = 'AzureVmWorkloadProtectedItem' @@ -3740,18 +3731,12 @@ class AzureVmWorkloadSAPAseDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending' :type protected_item_health_status: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectedItemHealthStatus - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param extended_info: Additional information for this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureVmWorkloadProtectedItemExtendedInfo + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] """ _validation = { @@ -3784,13 +3769,12 @@ class AzureVmWorkloadSAPAseDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'last_backup_error_detail': {'key': 'lastBackupErrorDetail', 'type': 'ErrorDetail'}, 'protected_item_data_source_id': {'key': 'protectedItemDataSourceId', 'type': 'str'}, 'protected_item_health_status': {'key': 'protectedItemHealthStatus', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureVmWorkloadProtectedItemExtendedInfo'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, } - def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, server_name: str=None, parent_name: str=None, parent_type: str=None, protection_status: str=None, protection_state=None, last_backup_status=None, last_backup_time=None, last_backup_error_detail=None, protected_item_data_source_id: str=None, protected_item_health_status=None, health_status=None, health_details=None, extended_info=None, **kwargs) -> None: - super(AzureVmWorkloadSAPAseDatabaseProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, server_name=server_name, parent_name=parent_name, parent_type=parent_type, protection_status=protection_status, protection_state=protection_state, last_backup_status=last_backup_status, last_backup_time=last_backup_time, last_backup_error_detail=last_backup_error_detail, protected_item_data_source_id=protected_item_data_source_id, protected_item_health_status=protected_item_health_status, health_status=health_status, health_details=health_details, extended_info=extended_info, **kwargs) + def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, server_name: str=None, parent_name: str=None, parent_type: str=None, protection_status: str=None, protection_state=None, last_backup_status=None, last_backup_time=None, last_backup_error_detail=None, protected_item_data_source_id: str=None, protected_item_health_status=None, extended_info=None, kpis_healths=None, **kwargs) -> None: + super(AzureVmWorkloadSAPAseDatabaseProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, server_name=server_name, parent_name=parent_name, parent_type=parent_type, protection_status=protection_status, protection_state=protection_state, last_backup_status=last_backup_status, last_backup_time=last_backup_time, last_backup_error_detail=last_backup_error_detail, protected_item_data_source_id=protected_item_data_source_id, protected_item_health_status=protected_item_health_status, extended_info=extended_info, kpis_healths=kpis_healths, **kwargs) self.protected_item_type = 'AzureVmWorkloadSAPAseDatabase' @@ -4129,18 +4113,12 @@ class AzureVmWorkloadSAPHanaDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending' :type protected_item_health_status: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectedItemHealthStatus - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param extended_info: Additional information for this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureVmWorkloadProtectedItemExtendedInfo + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] """ _validation = { @@ -4173,13 +4151,12 @@ class AzureVmWorkloadSAPHanaDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'last_backup_error_detail': {'key': 'lastBackupErrorDetail', 'type': 'ErrorDetail'}, 'protected_item_data_source_id': {'key': 'protectedItemDataSourceId', 'type': 'str'}, 'protected_item_health_status': {'key': 'protectedItemHealthStatus', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureVmWorkloadProtectedItemExtendedInfo'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, } - def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, server_name: str=None, parent_name: str=None, parent_type: str=None, protection_status: str=None, protection_state=None, last_backup_status=None, last_backup_time=None, last_backup_error_detail=None, protected_item_data_source_id: str=None, protected_item_health_status=None, health_status=None, health_details=None, extended_info=None, **kwargs) -> None: - super(AzureVmWorkloadSAPHanaDatabaseProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, server_name=server_name, parent_name=parent_name, parent_type=parent_type, protection_status=protection_status, protection_state=protection_state, last_backup_status=last_backup_status, last_backup_time=last_backup_time, last_backup_error_detail=last_backup_error_detail, protected_item_data_source_id=protected_item_data_source_id, protected_item_health_status=protected_item_health_status, health_status=health_status, health_details=health_details, extended_info=extended_info, **kwargs) + def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, server_name: str=None, parent_name: str=None, parent_type: str=None, protection_status: str=None, protection_state=None, last_backup_status=None, last_backup_time=None, last_backup_error_detail=None, protected_item_data_source_id: str=None, protected_item_health_status=None, extended_info=None, kpis_healths=None, **kwargs) -> None: + super(AzureVmWorkloadSAPHanaDatabaseProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, server_name=server_name, parent_name=parent_name, parent_type=parent_type, protection_status=protection_status, protection_state=protection_state, last_backup_status=last_backup_status, last_backup_time=last_backup_time, last_backup_error_detail=last_backup_error_detail, protected_item_data_source_id=protected_item_data_source_id, protected_item_health_status=protected_item_health_status, extended_info=extended_info, kpis_healths=kpis_healths, **kwargs) self.protected_item_type = 'AzureVmWorkloadSAPHanaDatabase' @@ -4588,18 +4565,12 @@ class AzureVmWorkloadSQLDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending' :type protected_item_health_status: str or ~azure.mgmt.recoveryservicesbackup.models.ProtectedItemHealthStatus - :param health_status: Health status of protected item. Possible values - include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Healthy', - 'TransientDegraded', 'PersistentDegraded', 'TransientUnhealthy', - 'PersistentUnhealthy', 'Invalid' - :type health_status: str or - ~azure.mgmt.recoveryservicesbackup.models.HealthStatus - :param health_details: Health details on this backup item. - :type health_details: - list[~azure.mgmt.recoveryservicesbackup.models.HealthDetails] :param extended_info: Additional information for this backup item. :type extended_info: ~azure.mgmt.recoveryservicesbackup.models.AzureVmWorkloadProtectedItemExtendedInfo + :param kpis_healths: Health details of different KPIs + :type kpis_healths: dict[str, + ~azure.mgmt.recoveryservicesbackup.models.KPIResourceHealthDetails] """ _validation = { @@ -4632,13 +4603,12 @@ class AzureVmWorkloadSQLDatabaseProtectedItem(AzureVmWorkloadProtectedItem): 'last_backup_error_detail': {'key': 'lastBackupErrorDetail', 'type': 'ErrorDetail'}, 'protected_item_data_source_id': {'key': 'protectedItemDataSourceId', 'type': 'str'}, 'protected_item_health_status': {'key': 'protectedItemHealthStatus', 'type': 'str'}, - 'health_status': {'key': 'healthStatus', 'type': 'str'}, - 'health_details': {'key': 'healthDetails', 'type': '[HealthDetails]'}, 'extended_info': {'key': 'extendedInfo', 'type': 'AzureVmWorkloadProtectedItemExtendedInfo'}, + 'kpis_healths': {'key': 'kpisHealths', 'type': '{KPIResourceHealthDetails}'}, } - def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, server_name: str=None, parent_name: str=None, parent_type: str=None, protection_status: str=None, protection_state=None, last_backup_status=None, last_backup_time=None, last_backup_error_detail=None, protected_item_data_source_id: str=None, protected_item_health_status=None, health_status=None, health_details=None, extended_info=None, **kwargs) -> None: - super(AzureVmWorkloadSQLDatabaseProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, server_name=server_name, parent_name=parent_name, parent_type=parent_type, protection_status=protection_status, protection_state=protection_state, last_backup_status=last_backup_status, last_backup_time=last_backup_time, last_backup_error_detail=last_backup_error_detail, protected_item_data_source_id=protected_item_data_source_id, protected_item_health_status=protected_item_health_status, health_status=health_status, health_details=health_details, extended_info=extended_info, **kwargs) + def __init__(self, *, backup_management_type=None, workload_type=None, container_name: str=None, source_resource_id: str=None, policy_id: str=None, last_recovery_point=None, backup_set_name: str=None, create_mode=None, deferred_delete_time_in_utc=None, is_scheduled_for_deferred_delete: bool=None, deferred_delete_time_remaining: str=None, is_deferred_delete_schedule_upcoming: bool=None, is_rehydrate: bool=None, friendly_name: str=None, server_name: str=None, parent_name: str=None, parent_type: str=None, protection_status: str=None, protection_state=None, last_backup_status=None, last_backup_time=None, last_backup_error_detail=None, protected_item_data_source_id: str=None, protected_item_health_status=None, extended_info=None, kpis_healths=None, **kwargs) -> None: + super(AzureVmWorkloadSQLDatabaseProtectedItem, self).__init__(backup_management_type=backup_management_type, workload_type=workload_type, container_name=container_name, source_resource_id=source_resource_id, policy_id=policy_id, last_recovery_point=last_recovery_point, backup_set_name=backup_set_name, create_mode=create_mode, deferred_delete_time_in_utc=deferred_delete_time_in_utc, is_scheduled_for_deferred_delete=is_scheduled_for_deferred_delete, deferred_delete_time_remaining=deferred_delete_time_remaining, is_deferred_delete_schedule_upcoming=is_deferred_delete_schedule_upcoming, is_rehydrate=is_rehydrate, friendly_name=friendly_name, server_name=server_name, parent_name=parent_name, parent_type=parent_type, protection_status=protection_status, protection_state=protection_state, last_backup_status=last_backup_status, last_backup_time=last_backup_time, last_backup_error_detail=last_backup_error_detail, protected_item_data_source_id=protected_item_data_source_id, protected_item_health_status=protected_item_health_status, extended_info=extended_info, kpis_healths=kpis_healths, **kwargs) self.protected_item_type = 'AzureVmWorkloadSQLDatabase' @@ -6091,6 +6061,90 @@ def __init__(self, *, location: str=None, tags=None, e_tag: str=None, properties self.properties = properties +class BackupResourceEncryptionConfig(Model): + """BackupResourceEncryptionConfig. + + :param encryption_at_rest_type: Encryption At Rest Type. Possible values + include: 'Invalid', 'MicrosoftManaged', 'CustomerManaged' + :type encryption_at_rest_type: str or + ~azure.mgmt.recoveryservicesbackup.models.EncryptionAtRestType + :param key_uri: Key Vault Key URI + :type key_uri: str + :param subscription_id: Key Vault Subscription Id + :type subscription_id: str + :param last_update_status: Possible values include: 'Invalid', + 'NotEnabled', 'PartiallySucceeded', 'PartiallyFailed', 'Failed', + 'Succeeded' + :type last_update_status: str or + ~azure.mgmt.recoveryservicesbackup.models.LastUpdateStatus + :param infrastructure_encryption_state: Possible values include: + 'Invalid', 'Disabled', 'Enabled' + :type infrastructure_encryption_state: str or + ~azure.mgmt.recoveryservicesbackup.models.InfrastructureEncryptionState + """ + + _attribute_map = { + 'encryption_at_rest_type': {'key': 'encryptionAtRestType', 'type': 'str'}, + 'key_uri': {'key': 'keyUri', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + 'last_update_status': {'key': 'lastUpdateStatus', 'type': 'str'}, + 'infrastructure_encryption_state': {'key': 'infrastructureEncryptionState', 'type': 'str'}, + } + + def __init__(self, *, encryption_at_rest_type=None, key_uri: str=None, subscription_id: str=None, last_update_status=None, infrastructure_encryption_state=None, **kwargs) -> None: + super(BackupResourceEncryptionConfig, self).__init__(**kwargs) + self.encryption_at_rest_type = encryption_at_rest_type + self.key_uri = key_uri + self.subscription_id = subscription_id + self.last_update_status = last_update_status + self.infrastructure_encryption_state = infrastructure_encryption_state + + +class BackupResourceEncryptionConfigResource(Resource): + """BackupResourceEncryptionConfigResource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource Id represents the complete path to the resource. + :vartype id: str + :ivar name: Resource name associated with the resource. + :vartype name: str + :ivar type: Resource type represents the complete path of the form + Namespace/ResourceType/ResourceType/... + :vartype type: str + :param location: Resource location. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param e_tag: Optional ETag. + :type e_tag: str + :param properties: BackupResourceEncryptionConfigResource properties + :type properties: + ~azure.mgmt.recoveryservicesbackup.models.BackupResourceEncryptionConfig + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'e_tag': {'key': 'eTag', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'BackupResourceEncryptionConfig'}, + } + + def __init__(self, *, location: str=None, tags=None, e_tag: str=None, properties=None, **kwargs) -> None: + super(BackupResourceEncryptionConfigResource, self).__init__(location=location, tags=tags, e_tag=e_tag, **kwargs) + self.properties = properties + + class BackupResourceVaultConfig(Model): """Backup resource vault config details. @@ -7395,7 +7449,11 @@ def __init__(self, **kwargs) -> None: class ErrorResponse(Model): - """The resource management error response. + """Error Response. + + Common error response for all Azure Resource Manager APIs to return error + details for failed operations. (This also follows the OData error response + format.). Variables are only populated by the server, and will be ignored when sending a request. @@ -8364,6 +8422,30 @@ def __init__(self, *, kek_details=None, bek_details=None, encryption_mechanism: self.encryption_mechanism = encryption_mechanism +class KPIResourceHealthDetails(Model): + """KPI Resource Health Details. + + :param resource_health_status: Resource Health Status. Possible values + include: 'Healthy', 'TransientDegraded', 'PersistentDegraded', + 'TransientUnhealthy', 'PersistentUnhealthy', 'Invalid' + :type resource_health_status: str or + ~azure.mgmt.recoveryservicesbackup.models.ResourceHealthStatus + :param resource_health_details: Resource Health Status + :type resource_health_details: + list[~azure.mgmt.recoveryservicesbackup.models.ResourceHealthDetails] + """ + + _attribute_map = { + 'resource_health_status': {'key': 'resourceHealthStatus', 'type': 'str'}, + 'resource_health_details': {'key': 'resourceHealthDetails', 'type': '[ResourceHealthDetails]'}, + } + + def __init__(self, *, resource_health_status=None, resource_health_details=None, **kwargs) -> None: + super(KPIResourceHealthDetails, self).__init__(**kwargs) + self.resource_health_status = resource_health_status + self.resource_health_details = resource_health_details + + class SchedulePolicy(Model): """Base class for backup schedule. @@ -9059,6 +9141,80 @@ def __init__(self, *, value: str=None, localized_value: str=None, **kwargs) -> N self.localized_value = localized_value +class NewErrorResponse(Model): + """The resource management error response. + + :param error: The error object. + :type error: + ~azure.mgmt.recoveryservicesbackup.models.NewErrorResponseError + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'NewErrorResponseError'}, + } + + def __init__(self, *, error=None, **kwargs) -> None: + super(NewErrorResponse, self).__init__(**kwargs) + self.error = error + + +class NewErrorResponseException(HttpOperationError): + """Server responsed with exception of type: 'NewErrorResponse'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(NewErrorResponseException, self).__init__(deserialize, response, 'NewErrorResponse', *args) + + +class NewErrorResponseError(Model): + """The error object. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar code: The error code. + :vartype code: str + :ivar message: The error message. + :vartype message: str + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: + list[~azure.mgmt.recoveryservicesbackup.models.NewErrorResponse] + :ivar additional_info: The error additional info. + :vartype additional_info: + list[~azure.mgmt.recoveryservicesbackup.models.ErrorAdditionalInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[NewErrorResponse]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + } + + def __init__(self, **kwargs) -> None: + super(NewErrorResponseError, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + class OperationResultInfo(OperationResultInfoBase): """Operation result info. @@ -9382,6 +9538,108 @@ def __init__(self, *, status=None, code: str=None, message: str=None, **kwargs) self.message = message +class PrepareDataMoveRequest(Model): + """Prepare DataMove Request. + + All required parameters must be populated in order to send to Azure. + + :param target_resource_id: Required. ARM Id of target vault + :type target_resource_id: str + :param target_region: Required. Target Region + :type target_region: str + :param data_move_level: Required. DataMove Level. Possible values include: + 'Invalid', 'Vault', 'Container' + :type data_move_level: str or + ~azure.mgmt.recoveryservicesbackup.models.DataMoveLevel + :param source_container_arm_ids: Source Container ArmIds + This needs to be populated only if DataMoveLevel is set to container + :type source_container_arm_ids: list[str] + :param ignore_moved: Ignore the artifacts which are already moved. + :type ignore_moved: bool + """ + + _validation = { + 'target_resource_id': {'required': True}, + 'target_region': {'required': True}, + 'data_move_level': {'required': True}, + } + + _attribute_map = { + 'target_resource_id': {'key': 'targetResourceId', 'type': 'str'}, + 'target_region': {'key': 'targetRegion', 'type': 'str'}, + 'data_move_level': {'key': 'dataMoveLevel', 'type': 'str'}, + 'source_container_arm_ids': {'key': 'sourceContainerArmIds', 'type': '[str]'}, + 'ignore_moved': {'key': 'ignoreMoved', 'type': 'bool'}, + } + + def __init__(self, *, target_resource_id: str, target_region: str, data_move_level, source_container_arm_ids=None, ignore_moved: bool=None, **kwargs) -> None: + super(PrepareDataMoveRequest, self).__init__(**kwargs) + self.target_resource_id = target_resource_id + self.target_region = target_region + self.data_move_level = data_move_level + self.source_container_arm_ids = source_container_arm_ids + self.ignore_moved = ignore_moved + + +class VaultStorageConfigOperationResultResponse(Model): + """Operation result response for Vault Storage Config. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: PrepareDataMoveResponse + + All required parameters must be populated in order to send to Azure. + + :param object_type: Required. Constant filled by server. + :type object_type: str + """ + + _validation = { + 'object_type': {'required': True}, + } + + _attribute_map = { + 'object_type': {'key': 'objectType', 'type': 'str'}, + } + + _subtype_map = { + 'object_type': {'PrepareDataMoveResponse': 'PrepareDataMoveResponse'} + } + + def __init__(self, **kwargs) -> None: + super(VaultStorageConfigOperationResultResponse, self).__init__(**kwargs) + self.object_type = None + + +class PrepareDataMoveResponse(VaultStorageConfigOperationResultResponse): + """Prepare DataMove Response. + + All required parameters must be populated in order to send to Azure. + + :param object_type: Required. Constant filled by server. + :type object_type: str + :param correlation_id: Co-relationId for move operation + :type correlation_id: str + :param source_vault_properties: Source Vault Properties + :type source_vault_properties: dict[str, str] + """ + + _validation = { + 'object_type': {'required': True}, + } + + _attribute_map = { + 'object_type': {'key': 'objectType', 'type': 'str'}, + 'correlation_id': {'key': 'correlationId', 'type': 'str'}, + 'source_vault_properties': {'key': 'sourceVaultProperties', 'type': '{str}'}, + } + + def __init__(self, *, correlation_id: str=None, source_vault_properties=None, **kwargs) -> None: + super(PrepareDataMoveResponse, self).__init__(**kwargs) + self.correlation_id = correlation_id + self.source_vault_properties = source_vault_properties + self.object_type = 'PrepareDataMoveResponse' + + class PreValidateEnableBackupRequest(Model): """Contract to validate if backup can be enabled on the given resource in a given vault and given configuration. @@ -10403,6 +10661,53 @@ def __init__(self, *, token: str=None, expiry_time_in_utc_ticks: int=None, secur self.security_pin = security_pin +class TriggerDataMoveRequest(Model): + """Trigger DataMove Request. + + All required parameters must be populated in order to send to Azure. + + :param source_resource_id: Required. ARM Id of source vault + :type source_resource_id: str + :param source_region: Required. Source Region + :type source_region: str + :param data_move_level: Required. DataMove Level. Possible values include: + 'Invalid', 'Vault', 'Container' + :type data_move_level: str or + ~azure.mgmt.recoveryservicesbackup.models.DataMoveLevel + :param correlation_id: Required. Correlation Id + :type correlation_id: str + :param source_container_arm_ids: Source Container ArmIds + :type source_container_arm_ids: list[str] + :param pause_gc: Pause GC + :type pause_gc: bool + """ + + _validation = { + 'source_resource_id': {'required': True}, + 'source_region': {'required': True}, + 'data_move_level': {'required': True}, + 'correlation_id': {'required': True}, + } + + _attribute_map = { + 'source_resource_id': {'key': 'sourceResourceId', 'type': 'str'}, + 'source_region': {'key': 'sourceRegion', 'type': 'str'}, + 'data_move_level': {'key': 'dataMoveLevel', 'type': 'str'}, + 'correlation_id': {'key': 'correlationId', 'type': 'str'}, + 'source_container_arm_ids': {'key': 'sourceContainerArmIds', 'type': '[str]'}, + 'pause_gc': {'key': 'pauseGC', 'type': 'bool'}, + } + + def __init__(self, *, source_resource_id: str, source_region: str, data_move_level, correlation_id: str, source_container_arm_ids=None, pause_gc: bool=None, **kwargs) -> None: + super(TriggerDataMoveRequest, self).__init__(**kwargs) + self.source_resource_id = source_resource_id + self.source_region = source_region + self.data_move_level = data_move_level + self.correlation_id = correlation_id + self.source_container_arm_ids = source_container_arm_ids + self.pause_gc = pause_gc + + class ValidateOperationRequest(Model): """Base class for validate operation request. diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_recovery_services_backup_client_enums.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_recovery_services_backup_client_enums.py index 66f224b5479e..9ed05d4dd80f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_recovery_services_backup_client_enums.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/models/_recovery_services_backup_client_enums.py @@ -12,6 +12,37 @@ from enum import Enum +class EncryptionAtRestType(str, Enum): + + invalid = "Invalid" + microsoft_managed = "MicrosoftManaged" + customer_managed = "CustomerManaged" + + +class LastUpdateStatus(str, Enum): + + invalid = "Invalid" + not_enabled = "NotEnabled" + partially_succeeded = "PartiallySucceeded" + partially_failed = "PartiallyFailed" + failed = "Failed" + succeeded = "Succeeded" + + +class InfrastructureEncryptionState(str, Enum): + + invalid = "Invalid" + disabled = "Disabled" + enabled = "Enabled" + + +class DataMoveLevel(str, Enum): + + invalid = "Invalid" + vault = "Vault" + container = "Container" + + class OperationStatusValues(str, Enum): invalid = "Invalid" @@ -47,11 +78,8 @@ class ProtectionState(str, Enum): protection_paused = "ProtectionPaused" -class HealthStatus(str, Enum): +class ResourceHealthStatus(str, Enum): - passed = "Passed" - action_required = "ActionRequired" - action_suggested = "ActionSuggested" healthy = "Healthy" transient_degraded = "TransientDegraded" persistent_degraded = "PersistentDegraded" @@ -120,6 +148,14 @@ class JobSupportedAction(str, Enum): retriable = "Retriable" +class HealthStatus(str, Enum): + + passed = "Passed" + action_required = "ActionRequired" + action_suggested = "ActionSuggested" + invalid = "Invalid" + + class ProtectedItemState(str, Enum): invalid = "Invalid" diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/__init__.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/__init__.py index e4e0c89cde04..3569ce97c94a 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/__init__.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/__init__.py @@ -9,6 +9,8 @@ # regenerated. # -------------------------------------------------------------------------- +from ._backup_resource_encryption_configs_operations import BackupResourceEncryptionConfigsOperations +from ._bms_prepare_data_move_operation_result_operations import BMSPrepareDataMoveOperationResultOperations from ._private_endpoint_connection_operations import PrivateEndpointConnectionOperations from ._backup_resource_vault_configs_operations import BackupResourceVaultConfigsOperations from ._protected_items_operations import ProtectedItemsOperations @@ -51,6 +53,8 @@ from ._recovery_services_backup_client_operations import RecoveryServicesBackupClientOperationsMixin __all__ = [ + 'BackupResourceEncryptionConfigsOperations', + 'BMSPrepareDataMoveOperationResultOperations', 'PrivateEndpointConnectionOperations', 'BackupResourceVaultConfigsOperations', 'ProtectedItemsOperations', diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_backup_resource_encryption_configs_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_backup_resource_encryption_configs_operations.py new file mode 100644 index 000000000000..48ccf427673e --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_backup_resource_encryption_configs_operations.py @@ -0,0 +1,162 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse + +from .. import models + + +class BackupResourceEncryptionConfigsOperations(object): + """BackupResourceEncryptionConfigsOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: Client Api Version. Constant value: "2020-10-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2020-10-01" + + self.config = config + + def get( + self, vault_name, resource_group_name, custom_headers=None, raw=False, **operation_config): + """Fetches Vault Encryption config. + + :param vault_name: The name of the recovery services vault. + :type vault_name: str + :param resource_group_name: The name of the resource group where the + recovery services vault is present. + :type resource_group_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: BackupResourceEncryptionConfigResource or ClientRawResponse + if raw=true + :rtype: + ~azure.mgmt.recoveryservicesbackup.models.BackupResourceEncryptionConfigResource + or ~msrest.pipeline.ClientRawResponse + :raises: + :class:`NewErrorResponseException` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'vaultName': self._serialize.url("vault_name", vault_name, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.NewErrorResponseException(self._deserialize, response) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BackupResourceEncryptionConfigResource', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEncryptionConfigs/backupResourceEncryptionConfig'} + + def update( + self, vault_name, resource_group_name, parameters, custom_headers=None, raw=False, **operation_config): + """Updates Vault encryption config. + + :param vault_name: The name of the recovery services vault. + :type vault_name: str + :param resource_group_name: The name of the resource group where the + recovery services vault is present. + :type resource_group_name: str + :param parameters: Vault encryption input config request + :type parameters: + ~azure.mgmt.recoveryservicesbackup.models.BackupResourceEncryptionConfigResource + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: None or ClientRawResponse if raw=true + :rtype: None or ~msrest.pipeline.ClientRawResponse + :raises: + :class:`NewErrorResponseException` + """ + # Construct URL + url = self.update.metadata['url'] + path_format_arguments = { + 'vaultName': self._serialize.url("vault_name", vault_name, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'BackupResourceEncryptionConfigResource') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.NewErrorResponseException(self._deserialize, response) + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEncryptionConfigs/backupResourceEncryptionConfig'} diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_bms_prepare_data_move_operation_result_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_bms_prepare_data_move_operation_result_operations.py new file mode 100644 index 000000000000..f357d846cea0 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_bms_prepare_data_move_operation_result_operations.py @@ -0,0 +1,140 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrest.polling import LROPoller, NoPolling +from msrestazure.polling.arm_polling import ARMPolling + +from .. import models + + +class BMSPrepareDataMoveOperationResultOperations(object): + """BMSPrepareDataMoveOperationResultOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: Client Api Version. Constant value: "2020-07-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2020-07-01" + + self.config = config + + + def _get_initial( + self, vault_name, resource_group_name, operation_id, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'vaultName': self._serialize.url("vault_name", vault_name, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + raise models.NewErrorResponseException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('VaultStorageConfigOperationResultResponse', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def get( + self, vault_name, resource_group_name, operation_id, custom_headers=None, raw=False, polling=True, **operation_config): + """Fetches Operation Result for Prepare Data Move. + + :param vault_name: The name of the recovery services vault. + :type vault_name: str + :param resource_group_name: The name of the resource group where the + recovery services vault is present. + :type resource_group_name: str + :param operation_id: + :type operation_id: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns + VaultStorageConfigOperationResultResponse or + ClientRawResponse if + raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.recoveryservicesbackup.models.VaultStorageConfigOperationResultResponse] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.recoveryservicesbackup.models.VaultStorageConfigOperationResultResponse]] + :raises: + :class:`NewErrorResponseException` + """ + raw_result = self._get_initial( + vault_name=vault_name, + resource_group_name=resource_group_name, + operation_id=operation_id, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('VaultStorageConfigOperationResultResponse', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/operationResults/{operationId}'} diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_recovery_services_backup_client_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_recovery_services_backup_client_operations.py index a23ffdfefd33..c0c5d9f7c92b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_recovery_services_backup_client_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicesbackup/azure/mgmt/recoveryservicesbackup/operations/_recovery_services_backup_client_operations.py @@ -20,6 +20,250 @@ class RecoveryServicesBackupClientOperationsMixin(object): def get_operation_status( + self, vault_name, resource_group_name, operation_id, custom_headers=None, raw=False, **operation_config): + """Fetches operation status for data move operation on vault. + + :param vault_name: The name of the recovery services vault. + :type vault_name: str + :param resource_group_name: The name of the resource group where the + recovery services vault is present. + :type resource_group_name: str + :param operation_id: + :type operation_id: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: OperationStatus or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.recoveryservicesbackup.models.OperationStatus or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`NewErrorResponseException` + """ + api_version = "2020-07-01" + + # Construct URL + url = self.get_operation_status.metadata['url'] + path_format_arguments = { + 'vaultName': self._serialize.url("vault_name", vault_name, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'operationId': self._serialize.url("operation_id", operation_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.NewErrorResponseException(self._deserialize, response) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('OperationStatus', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_operation_status.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/operationStatus/{operationId}'} + + + def _bms_prepare_data_move_initial( + self, vault_name, resource_group_name, parameters, custom_headers=None, raw=False, **operation_config): + api_version = "2020-07-01" + + # Construct URL + url = self.bms_prepare_data_move.metadata['url'] + path_format_arguments = { + 'vaultName': self._serialize.url("vault_name", vault_name, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'PrepareDataMoveRequest') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + raise models.NewErrorResponseException(self._deserialize, response) + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def bms_prepare_data_move( + self, vault_name, resource_group_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Prepares source vault for Data Move operation. + + :param vault_name: The name of the recovery services vault. + :type vault_name: str + :param resource_group_name: The name of the resource group where the + recovery services vault is present. + :type resource_group_name: str + :param parameters: Prepare data move request + :type parameters: + ~azure.mgmt.recoveryservicesbackup.models.PrepareDataMoveRequest + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: + :class:`NewErrorResponseException` + """ + raw_result = self._bms_prepare_data_move_initial( + vault_name=vault_name, + resource_group_name=resource_group_name, + parameters=parameters, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + bms_prepare_data_move.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/prepareDataMove'} + + + def _bms_trigger_data_move_initial( + self, vault_name, resource_group_name, parameters, custom_headers=None, raw=False, **operation_config): + api_version = "2020-07-01" + + # Construct URL + url = self.bms_trigger_data_move.metadata['url'] + path_format_arguments = { + 'vaultName': self._serialize.url("vault_name", vault_name, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'TriggerDataMoveRequest') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + raise models.NewErrorResponseException(self._deserialize, response) + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def bms_trigger_data_move( + self, vault_name, resource_group_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Triggers Data Move Operation on target vault. + + :param vault_name: The name of the recovery services vault. + :type vault_name: str + :param resource_group_name: The name of the resource group where the + recovery services vault is present. + :type resource_group_name: str + :param parameters: Trigger data move request + :type parameters: + ~azure.mgmt.recoveryservicesbackup.models.TriggerDataMoveRequest + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: + :class:`NewErrorResponseException` + """ + raw_result = self._bms_trigger_data_move_initial( + vault_name=vault_name, + resource_group_name=resource_group_name, + parameters=parameters, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + bms_trigger_data_move.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/triggerDataMove'} + + def get_operation_status1( self, vault_name, resource_group_name, private_endpoint_connection_name, operation_id, custom_headers=None, raw=False, **operation_config): """Gets the operation status for a private endpoint connection. @@ -47,7 +291,7 @@ def get_operation_status( api_version = "2020-02-02" # Construct URL - url = self.get_operation_status.metadata['url'] + url = self.get_operation_status1.metadata['url'] path_format_arguments = { 'vaultName': self._serialize.url("vault_name", vault_name, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), @@ -87,4 +331,4 @@ def get_operation_status( return client_raw_response return deserialized - get_operation_status.metadata = {'url': '/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}/operationsStatus/{operationId}'} + get_operation_status1.metadata = {'url': '/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}/operationsStatus/{operationId}'}